← Back to Feed CACHED · 2026-07-22 09:48:19 · CACHE_KEY CVE-2026-6875
CVE-2026-6875 · CWE-94 · Disclosed 2026-07-13

ServiceNow has addressed a remote code execution vulnerability that was identified in the ServiceNow AI…

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

The customer-facing 'Thanks for taking the assessment' page turned out to be an unauthenticated JavaScript engine

CVE-2026-6875 is a sandbox escape in the ServiceNow AI Platform that lets an unauthenticated attacker hit /assessment_thanks.do, feed attacker-controlled input into the platform's Rhino-based scripting sandbox, and break out to full server-side code execution. Searchlight Cyber's writeup walks the primitive from sink to Rhino to reading arbitrary tables, minting admin users, and executing shell commands on any connected MID Server proxy. Affected: all ServiceNow AI Platform releases prior to the July 2026 hotfixes rolled into the Xanadu, Yokohama, and Zurich family patches distributed via KB3137947. Hosted (service-now.com) instances were auto-patched by ServiceNow in April 2026; self-hosted / partner / GovCommunityCloud deployments are the exposed population.

There is no NVD CVSS baseline yet, but the vendor's CVSS 4.0 vector scores this at 9.5. Reality matches: unauthenticated, network-reachable, pre-auth code execution on a system that holds ITSM tickets, CMDB, HR, GRC, IRM, and — via MID Server — a foothold into the internal network. This is a first-assessment CRITICAL by every meaningful metric.

"Pre-auth RCE in an internet-facing SaaS/enterprise workflow platform, active exploitation confirmed, PoC public — patch now."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Locate an exposed ServiceNow instance

Attacker enumerates *.service-now.com and self-hosted ServiceNow portals via Shodan/Censys/FOFA fingerprints (favicon hash, x-is-logged-in header, /login.do). ServiceNow's install base is enormous — Fortune 500 penetration is above 80% — and instances are typically internet-exposed for employee, vendor, and customer portals.
Conditions required:
  • Network reachability to the ServiceNow instance on 443
  • Instance running an unpatched AI Platform release
Where this breaks in practice:
  • Hosted (service-now.com) tenants were patched by ServiceNow itself in April 2026 — this friction is only real for self-hosted/partner deployments
Detection/coverage: Censys and Shodan both fingerprint ServiceNow; internal asset inventory should already tag it
STEP 02

Hit the pre-auth sink at /assessment_thanks.do

The endpoint accepts user-controlled parameters before any authentication check. Public research and the Assetnote / Searchlight Cyber writeup describe a Jelly/Glide expression injection reaching the Rhino scripting engine.
Conditions required:
  • HTTP POST/GET to /assessment_thanks.do with crafted parameters
Where this breaks in practice:
  • A WAF rule blocking Glide/Jelly expression syntax (${...}, <g:evaluate>) can dent the exploit but not the class
Detection/coverage: Requests to assessment_thanks.do from non-browser user agents or with expression-language payloads are a strong IOC
STEP 03

Escape the Rhino sandbox

The sandbox uses Rhino script policy to restrict Java reflection. Multiple gadget chains — including the one Defused observed in the wild and a separate published PoC — pivot through class loaders to reach java.lang.Runtime or Glide's internal APIs. Weaponized as servicenow-assessment-rce.py by public researchers on GitHub within days of disclosure.
Conditions required:
  • Vulnerable Rhino policy configuration (default on affected versions)
Where this breaks in practice:
  • None on default installs
Detection/coverage: EDR on the app tier will see spawned children of the ServiceNow Java process — sh, cmd, powershell, curl
STEP 04

Pivot to Glide data model + admin creation

Once inside Rhino with escaped privileges, GlideRecord gives read/write to every table — CMDB, sys_user, sys_user_role, sys_credentials. Attacker mints a sys_user with the admin role or exfiltrates stored credentials (SSH keys, API tokens, integration secrets).
Conditions required:
  • Code execution inside the ServiceNow JVM
Where this breaks in practice:
  • Row-level ACLs do not apply — the attacker runs as the app itself
Detection/coverage: Audit-log deltas on sys_user_role and sys_credentials should page immediately
STEP 05

Pivot into the internal network via MID Server

MID Servers are ServiceNow's outbound-connected agents that sit inside customer networks to bridge integrations (AD, SCCM, vCenter, ServiceNow Discovery). Compromised app tier can push arbitrary work to any registered MID Server, giving the attacker authenticated code execution deep inside the enterprise LAN.
Conditions required:
  • A registered MID Server exists (nearly universal in enterprise deployments)
Where this breaks in practice:
  • MID Server runs as a service account — if it was scoped tightly (rare) impact is bounded
Detection/coverage: MID Server logs record work items; unexpected shell payloads are anomalous
03 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationConfirmed — Defused reported live exploitation on 2026-07-19, six days after disclosure
Public PoCYes — Searchlight Cyber writeup + independent servicenow-assessment-rce PoC on GitHub; second gadget chain observed in the wild differs from the published one
EPSS0.00509 (~0.5%) — will spike; EPSS lags active-exploitation signals
KEV statusNot listed as of 2026-07-22 — expected to be added imminently given confirmed exploitation
CVSSVendor CVSS 4.0: 9.5 CRITICAL — vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H (no NVD 3.1 baseline yet)
AffectedServiceNow AI Platform — Xanadu, Yokohama, and Zurich release families prior to July 2026 hotfixes
FixedHotfixes rolled via KB3137947; hosted instances auto-patched April 2026, self-hosted patches available June 2026
ExposureShodan/Censys show tens of thousands of service-now.com and self-hosted instances externally reachable — the vast majority of Fortune 500 run ServiceNow
Disclosed2026-07-13 by ServiceNow (KB3137947); reported by Adam Kues (Assetnote / Searchlight Cyber) on 2026-04-01
CWECWE-94 — Improper Control of Generation of Code (sandbox escape → RCE)
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to CRITICAL (9.6/10)

This is unauthenticated, network-reachable, pre-auth remote code execution in a canonically high-value-role platform (ServiceNow holds CMDB, credentials, and MID Server pivot into the internal LAN), with confirmed in-the-wild exploitation less than a week after disclosure. The decisive factor is the combination of zero prerequisites + active exploitation + MID Server blast radius — this is the definition of a CRITICAL first assessment.

HIGH Exploitability and active exploitation
HIGH Blast radius (MID Server pivot, credential store access)
MEDIUM Self-hosted vs hosted exposure split — Shodan cannot cleanly separate patched vs unpatched hosted tenants

Why this verdict

  • Zero preconditions: Pre-authentication, single HTTP request to /assessment_thanks.do, no user interaction. Friction audit: unauthenticated remote → attacker population = the internet.
  • Active exploitation confirmed by Defused on 2026-07-19, with a gadget chain distinct from the public PoC — meaning multiple actors are working the class, not just replaying one script.
  • Role multiplier: ServiceNow is by definition a high-value-role component — it is the enterprise system of record for ITSM, CMDB, HR, GRC, and stores integration credentials for AD, vCenter, cloud, and SCCM. The chain succeeds end-to-end: pre-auth → RCE → admin creation → credential exfil → MID Server pivot into the internal LAN. Blast radius = fleet compromise. Floor = CRITICAL.
  • Installed base: ServiceNow is deployed in >80% of the Fortune 500; self-hosted and partner instances that missed the June rollout are the exposed population, but that population is measured in thousands of enterprises, not a rounding error.
  • PoC quality: Public write-up + working exploit + a second in-the-wild variant means detection based on one signature will miss.

Why not higher?

CRITICAL / 9.6 is already at the top of the scale for this bug class. The residual 0.4 accounts for the fact that ServiceNow hosted the majority of tenants and patched them in April — the effective exposed population is self-hosted, partner, and GovCommunityCloud, which is smaller than the total ServiceNow install base.

Why not lower?

A HIGH rating would require meaningful friction — authentication, user interaction, or a narrow deployment role. None apply: it is pre-auth, single-shot, in a canonically high-value component, and being exploited today. Downgrading past the role floor is not defensible.

05 · Compensating Control

What to do — in priority order.

  1. Block /assessment_thanks.do at the edge — Add a WAF/ingress rule dropping any request to assessment_thanks.do unless the source is a known-good corporate range. Deploy within 3 days per the noisgate mitigation SLA. This is a legacy assessment endpoint most tenants do not need externally.
  2. Push the KB3137947 hotfix to every self-hosted / partner instance — Coordinate with ServiceNow customer support / your partner AM to confirm the exact hotfix build for your release family (Xanadu / Yokohama / Zurich) and roll it during the next change window inside the 3-day mitigation window.
  3. Rotate all secrets stored in sys_credentials — Assume compromise on any unpatched instance with recent external exposure. Rotate AD service accounts, cloud API keys, SSH keys, and integration tokens the MID Server can reach. Do this in parallel with patching, not after.
  4. Audit sys_user_role and sys_user for new admin accounts — The confirmed post-exploit action is creating admins. Diff the admin list against a known-good snapshot from before 2026-07-13 and pull audit logs for the endpoint.
  5. Constrain MID Server service accounts — The MID Server is the pivot into your LAN. Confirm it runs with least-privilege AD/domain rights and cannot reach Tier-0 assets — a policy fix that also blunts the next ServiceNow RCE.
What doesn't work
  • MFA on the ServiceNow UI — the sink is pre-authentication, MFA is never evaluated
  • Application-layer ACLs (sys_security_acl) — the exploit runs as the JVM itself, above the ACL layer
  • IP allowlisting the admin UI only — the vulnerable endpoint is a customer-facing form path, not /admin
  • Rate limiting — exploitation is a single request, not a brute force
06 · Verification

Crowdsourced verification payload.

Run this from an auditor workstation with network reachability to the target ServiceNow instance. Invoke as ./check-cve-2026-6875.sh https://your-instance.service-now.com. No privileges required — this is an unauthenticated probe against a public endpoint header/behavior, not the exploit itself.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# noisgate check for CVE-2026-6875 (ServiceNow AI Platform sandbox escape RCE)
# SAFE: probes only, does NOT execute the sandbox escape.
set -u

if [ $# -ne 1 ]; then
  echo "Usage: $0 https://<instance>.service-now.com" >&2
  exit 2
fi

TARGET="${1%/}"
UA="noisgate-cve-2026-6875-check/1.0"

# 1. Confirm this is actually a ServiceNow instance
STATS=$(curl -sk -A "$UA" --max-time 10 "$TARGET/stats.do" || true)
if ! echo "$STATS" | grep -qi "ServiceNow"; then
  echo "UNKNOWN: $TARGET did not respond as a ServiceNow instance"
  exit 3
fi

# 2. Extract build tag / version banner
BUILD_TAG=$(echo "$STATS" | grep -Eio 'Build tag: [^<]+' | head -n1)
BUILD_DATE=$(echo "$STATS" | grep -Eio 'Build date: [^<]+' | head -n1)
echo "Instance: $TARGET"
echo "$BUILD_TAG"
echo "$BUILD_DATE"

# 3. Check reachability of the vulnerable pre-auth endpoint
CODE=$(curl -sk -o /dev/null -w "%{http_code}" -A "$UA" --max-time 10 \
  "$TARGET/assessment_thanks.do")
echo "/assessment_thanks.do returned HTTP $CODE"

# 4. Decision
# The endpoint is expected to exist on affected AI Platform releases.
# Only KB3137947 hotfix builds dated 2026-06-01 or later are patched.
if echo "$BUILD_DATE" | grep -Eq '2026-0[6-9]|2026-1[0-2]|202[7-9]'; then
  echo "PATCHED: build date is post-June-2026, KB3137947 hotfix expected present"
  exit 0
fi

if [ "$CODE" = "200" ] || [ "$CODE" = "302" ]; then
  echo "VULNERABLE: pre-auth endpoint reachable AND build predates KB3137947 hotfix"
  echo "Action: apply KB3137947 hotfix immediately per noisgate CRITICAL SLA"
  exit 1
fi

echo "UNKNOWN: could not confidently determine patch state — check KB3137947 manually"
exit 3
07 · Bottom Line

If you remember one thing.

TL;DR
Treat this as patch-tonight work. Per the noisgate mitigation SLA for CRITICAL — and overridden to *immediate, within hours* because exploitation is already confirmed in the wild — by Monday close-of-business you should have (1) a WAF block on /assessment_thanks.do for every self-hosted and partner ServiceNow instance, (2) a confirmed inventory of which of your instances are hosted (auto-patched by ServiceNow in April) vs self-hosted/partner (your problem), and (3) the KB3137947 hotfix scheduled for the next change window, not the next quarter. Per the noisgate remediation SLA the vendor hotfix must be fully deployed within 90 days, but with active exploitation you should be measuring this in days, not months. In parallel, rotate every credential stored in sys_credentials on any instance that was internet-reachable between 2026-07-13 and patch time, and diff sys_user_role for new admin accounts.

Sources

  1. ServiceNow KB3137947 advisory
  2. SecurityWeek — Exploitation seen days after disclosure
  3. Help Net Security — Pre-auth RCE exploited in the wild
  4. BleepingComputer — Critical ServiceNow code execution flaw exploited
  5. SOCRadar analysis
  6. GBHackers — Unauthenticated RCE
  7. CyberSecurityNews — Public PoC released
  8. Rescana active exploitation alert
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.