This is the spare key hidden in the maintenance closet, not the front door lock
Oracle says CVE-2026-35273 sits in PeopleSoft PeopleTools Updates Environment Management, specifically the Environment Management/Update Manager plane used to discover systems, track configuration, and push update activity. Affected supported versions are 8.61 and 8.62, and Oracle rates it as unauthenticated network-exploitable over HTTP with full takeover impact. That matters because the EM hub (PSEMHUB) is not just inventory; Oracle documents that EMF can broker messages and remote actions across managed PeopleSoft servers.
Vendor CRITICAL is fair in a lab, but too hot for enterprise-wide prioritization by default. The biggest real-world friction is exposure: this is usually an update/admin component behind internal routing, VPN, or reverse proxy controls, and Oracle also documents host allowlisting for hub connections. If your PSEMHUB or associated PIA path is internet-reachable, treat it like a near-critical incident; if it is internal-only, this is still serious but it is *post-exposure serious*, not internet-at-scale emergency serious.
4 steps from start to impact.
Find a reachable EM hub or PIA endpoint
PSEMHUB or a related Updates Environment Management path. In practice this means enumerating PeopleSoft Internet Architecture exposure, usually via HTTP(S) and recognizable PeopleSoft web artifacts. Tooling is basic: Shodan/Censys/manual HTTP fingerprinting is enough if the service is exposed.- Unauthenticated network path to the PeopleSoft web tier
- Affected PeopleTools
8.61or8.62with EM functionality deployed
- Many enterprises keep PeopleSoft admin/update surfaces internal or VPN-only
- Some deployments separate the hub from user-facing applications
- Internet scanning does not reliably distinguish exposed PeopleSoft login pages from exposed
PSEMHUBpaths without manual validation
Hit the pre-auth flaw in Updates Environment Management
- Reachable vulnerable endpoint
- No upstream access control blocking the request path
- Oracle has not publicly released technical exploit details
- No public GitHub or Exploit-DB proof-of-concept was found in this review session
- Reverse proxies, WAFs, path restrictions, or IP ACLs may break weaponization even when the host is technically vulnerable
Turn hub compromise into administrative control
PSEMHUB plus EMF message brokering.- Successful compromise of the EM hub
- Connected agents or managed peers in the environment
- Blast radius depends on whether agents are deployed and actively connected
- Segmentation between web, app, process scheduler, and admin networks can limit follow-on control
- Hardening around service accounts and outbound filtering can slow post-exploitation
Pivot into broader PeopleSoft infrastructure
- Useful trust relationships or credentials on the compromised host
- Lateral network paths to managed PeopleSoft systems
- EDR, network segmentation, PAM, and service-account scoping can contain the pivot
- Some organizations run EM only for maintenance windows or minimally use the feature set
The supporting signals.
| In-the-wild status | No public exploitation evidence found in this review session, and CVE-2026-35273 was not present in the CISA KEV catalog page checked on 2026-06-11. Absence from KEV is *not* safety; it just means no CISA-listed exploitation signal yet. |
|---|---|
| Proof-of-concept availability | No public GitHub/Exploit-DB/Nuclei proof-of-concept was found during this review. Reporters credited by Oracle are Bobby Gould, Lucas Miller, and Minh Giang from TrendAI/ZDI-related research. |
| EPSS | User-supplied EPSS is 0.00025, which is extremely low and lines up with a niche enterprise product plus no public exploit signal. I could not independently validate the exact percentile from a public FIRST record in this session. |
| KEV status | Not KEV-listed as checked against the public CISA Known Exploited Vulnerabilities Catalog on 2026-06-11. |
| CVSS vector reality check | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H means Oracle sees straight pre-auth network compromise with full CIA impact. That is technically severe, but CVSS does not price in the fact that this is usually an admin/update surface rather than a broadly exposed business endpoint. |
| Affected versions | Oracle publicly lists supported affected versions as PeopleSoft Enterprise PeopleTools 8.61 and 8.62. |
| Fixed versions / patching model | Oracle's public alert says a vendor fix is available to supported customers and points to MOS document CPU187, but it does not publicly disclose the exact fixed build number. For public intel purposes, patched version is therefore null. |
| Exposure and scanning notes | No authoritative public count of exposed PSEMHUB instances was verified in this session. Oracle's documentation shows the hub is a web application installed with PIA and describes host allowlisting via allowedhost.properties, which is strong evidence this surface is often reachable only from controlled peers. |
| Disclosure | Public disclosure date supplied in the case intel is 2026-06-11; Oracle's Security Alert revision is dated 2026-06-10. |
| Research credit | Oracle credits Bobby Gould, Lucas Miller, and Minh Giang from TrendAI / Zero Day Initiative reporting. |
noisgate verdict.
The decisive factor is attacker reachability to the EM hub/admin plane, not the CVSS math. If PSEMHUB is exposed, this behaves like a near-critical pre-auth takeover; across a normal enterprise estate, that surface is usually constrained enough that HIGH is the right fleet-level priority bucket.
Why this verdict
- Start from Oracle's 9.8: pre-auth network compromise of a management component with takeover impact deserves a very high baseline.
- Downgrade for attacker position: the attacker must reach the PeopleSoft web/admin surface hosting Updates Environment Management. In many enterprises that implies VPN, internal network, reverse proxy allowlisting, or at least a non-public path.
- Downgrade for exposed population: this is an update-management component, not the core employee or student self-service flow. Real deployments are materially less likely to expose it directly to the internet than generic web apps.
- Downgrade for exploit evidence: as of 2026-06-11, there is no KEV listing, no public exploitation evidence, and no public PoC found in this review. That matters when you are triaging across 10,000 hosts.
- Hold at HIGH because blast radius is ugly once reached: Oracle documents that EMF can broker peer communication and remote actions. A reachable vulnerable hub can become an admin-plane pivot, not just a single-web-node incident.
Why not higher?
I did not keep this at CRITICAL because the most important prerequisite is direct reachability to a niche PeopleSoft management surface. That prerequisite sharply narrows the attackable population in real environments, and there is no public exploitation or KEV pressure yet. CRITICAL is warranted for an *exposed* hub, but not as the default fleet-wide rating.
Why not lower?
I did not drop this to MEDIUM because once the vulnerable endpoint is reachable, the chain is brutally short: no auth, no user interaction, and Oracle says takeover. The management-plane nature of EMF also increases follow-on impact beyond a single compromised web page.
What to do — in priority order.
- Restrict
PSEMHUBnetwork access — Limit the EM hub and related PeopleSoft admin/update paths to admin jump hosts, VPN ranges, or internal subnets only. Do this within 30 days because reachability is the main severity amplifier here; if the service is not reachable, the CVE is far harder to weaponize. - Enforce hub host allowlisting — Use
allowedhost.propertiesfor HTTP or one-way SSL hub configurations so only expected agents/clients can talk to the hub. Deploy within 30 days; Oracle's own documentation explicitly supports this control and it directly cuts off opportunistic access. - Disable or isolate EM where unused — If your maintenance model does not require active Environment Management hub exposure, disable the component or isolate it onto a non-routed admin segment. Complete within 30 days because unused management services should not stay exposed while you queue patch testing.
- Monitor for anomalous EMF activity — Add alerting for unusual web requests to
PSEMHUB, unexpected peer registrations, and suspicious child processes from the PeopleSoft web/app server context. Stand this up within 30 days so you can catch exploitation attempts before full lateral movement. - Tighten service-account and egress controls — Constrain the PeopleSoft web tier's outbound access and reduce over-privileged service accounts so hub compromise does not immediately become estate compromise. Apply within 30 days as a blast-radius control while patching moves through change control.
- MFA on user login pages does not help if the vulnerable endpoint is pre-auth and lives in the admin/update plane.
- Perimeter SSL alone does not fix this; Oracle's advisory says HTTP implies HTTPS variants are affected too.
- EDR alone is not a preventive control for the initial exploit. It may catch post-exploit tooling, but it does not remove the exposed pre-auth bug.
- Routine vulnerability scanning without path restriction is not mitigation; it may tell you the box exists, but it leaves the reachable attack surface intact.
Crowdsourced verification payload.
Run this on the PeopleSoft web/app host itself from a shell with read access to PS_HOME and the web deployment directories; no root/admin is required unless your install paths are locked down. Invoke it as python3 check_cve_2026_35273.py --ps-home /opt/psft/pt or, on Windows, py check_cve_2026_35273.py --ps-home D:\psft\pt; the script is a triage check for affected PeopleTools branches plus PSEMHUB presence, because Oracle's public alert does not expose the exact fixed build number.
#!/usr/bin/env python3
# check_cve_2026_35273.py
# Triage checker for CVE-2026-35273 (Oracle PeopleSoft PeopleTools Updates Environment Management)
# Exit codes:
# 0 = PATCHED / not in public affected major versions
# 1 = VULNERABLE / affected branch with PSEMHUB present
# 2 = UNKNOWN / insufficient evidence
import argparse
import os
import platform
import re
import shutil
import subprocess
import sys
from pathlib import Path
AFFECTED_MAJOR = {"8.61", "8.62"}
def eprint(msg):
print(msg, file=sys.stderr)
def candidate_ps_homes(user_supplied=None):
cands = []
if user_supplied:
cands.append(Path(user_supplied))
for envvar in ("PS_HOME", "PSHOME"):
val = os.environ.get(envvar)
if val:
cands.append(Path(val))
common = []
if os.name == "nt":
common += [
Path("C:/psft/pt"),
Path("C:/oracle/psft/pt"),
Path("D:/psft/pt"),
]
else:
common += [
Path("/opt/psft/pt"),
Path("/u01/app/psft/pt"),
Path("/opt/oracle/psft/pt"),
]
cands.extend(common)
seen = []
for c in cands:
try:
rc = c.resolve()
except Exception:
rc = c
if rc not in seen:
seen.append(rc)
return seen
def find_psadmin(ps_home: Path):
exe = "psadmin.exe" if os.name == "nt" else "psadmin"
paths = [
ps_home / "appserv" / exe,
ps_home / "bin" / exe,
]
for p in paths:
if p.exists():
return p
found = shutil.which("psadmin")
return Path(found) if found else None
def get_version_from_psadmin(psadmin_path: Path):
try:
proc = subprocess.run(
[str(psadmin_path), "-v"],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
text=True,
timeout=20,
check=False,
)
out = proc.stdout or ""
m = re.search(r"Version\s+(\d+\.\d+)", out, re.IGNORECASE)
if m:
return m.group(1), out.strip()
m = re.search(r"(8\.6[12])", out)
if m:
return m.group(1), out.strip()
return None, out.strip()
except Exception as exc:
return None, f"psadmin execution failed: {exc}"
def find_psemhub(ps_home: Path):
checks = [
ps_home / "webserv",
ps_home.parent / "webserv",
ps_home.parent.parent / "webserv",
]
matches = []
for base in checks:
if not base.exists():
continue
for pattern in [
"**/PSEMHUB",
"**/PSEMHUB.war",
"**/applications/peoplesoft/PSEMHUB",
"**/applications/peoplesoft/PSEMHUB.war",
]:
try:
matches.extend(base.glob(pattern))
except Exception:
pass
uniq = []
for m in matches:
try:
rm = m.resolve()
except Exception:
rm = m
if rm not in uniq:
uniq.append(rm)
return uniq
def read_allowed_hosts(psemhub_paths):
candidates = []
for p in psemhub_paths:
if p.is_dir():
candidates.append(p / "envmetadata" / "config" / "allowedhost.properties")
candidates.append(p / "WEB-INF" / "classes" / "envmetadata" / "config" / "allowedhost.properties")
else:
candidates.append(p.parent / "envmetadata" / "config" / "allowedhost.properties")
for c in candidates:
if c.exists():
try:
content = c.read_text(errors="ignore")
except Exception:
content = ""
lines = []
for line in content.splitlines():
s = line.strip()
if not s or s.startswith("#"):
continue
lines.append(s)
return str(c), lines
return None, []
def main():
parser = argparse.ArgumentParser(description="Triage check for CVE-2026-35273")
parser.add_argument("--ps-home", help="Path to PS_HOME")
args = parser.parse_args()
version = None
version_src = None
ps_home_used = None
psadmin_path = None
for cand in candidate_ps_homes(args.ps_home):
if not cand.exists():
continue
psadmin = find_psadmin(cand)
if not psadmin:
continue
v, src = get_version_from_psadmin(psadmin)
ps_home_used = cand
psadmin_path = psadmin
version = v
version_src = src
break
if not ps_home_used:
print("UNKNOWN: could not locate PS_HOME/psadmin; supply --ps-home explicitly")
sys.exit(2)
psemhub_paths = find_psemhub(ps_home_used)
ah_path, ah_lines = read_allowed_hosts(psemhub_paths)
details = {
"host_os": platform.platform(),
"ps_home": str(ps_home_used),
"psadmin": str(psadmin_path) if psadmin_path else None,
"version": version,
"psemhub_found": [str(p) for p in psemhub_paths],
"allowedhost_file": ah_path,
"allowedhost_entries": ah_lines,
}
# Public logic only: Oracle publicly lists affected versions 8.61 and 8.62.
# The public alert does not provide exact fixed build numbers, so this script
# treats affected branches with deployed PSEMHUB as VULNERABLE for triage.
if version in AFFECTED_MAJOR and psemhub_paths:
print("VULNERABLE: affected PeopleTools branch with PSEMHUB deployed")
print(details)
sys.exit(1)
elif version and version not in AFFECTED_MAJOR:
print("PATCHED: installed PeopleTools major version is outside Oracle's public affected list (8.61/8.62)")
print(details)
sys.exit(0)
else:
print("UNKNOWN: could not confirm version or PSEMHUB deployment decisively")
print(details)
sys.exit(2)
if __name__ == "__main__":
main()
If you remember one thing.
8.61/8.62 host and answer one question first: is PSEMHUB or any Updates Environment Management path reachable from untrusted networks? If yes, cut exposure immediately with ACLs/VPN/reverse-proxy restrictions and host allowlisting within 30 days under the noisgate mitigation SLA, and faster if you discover true internet exposure. Then move the Oracle fix through change control and complete vendor remediation within 180 days under the noisgate remediation SLA; if a hub is publicly reachable, do not wait for the back half of that window.Sources
- Oracle Security Alert for CVE-2026-35273
- Oracle text risk matrix for CVE-2026-35273
- Oracle CSAF JSON for CVE-2026-35273
- Oracle docs: Configuring the Environment Management Hub
- Oracle docs: PeopleTools 8.56 Change Assistant and Update Manager
- Oracle docs: PeopleTools 8.62 System and Server Administration
- CISA Known Exploited Vulnerabilities Catalog
- FIRST EPSS FAQ
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.