Jenkins controllers hold build secrets, signing keys, and deploy credentials, which makes them one of the most valuable targets in any software supply chain. On October 28, 2026, the Jenkins project published a core security advisory fixing 15 vulnerabilities: 13 High and 2 Medium. Every Jenkins weekly release up to 2.587 and every LTS release up to 2.580.1 is affected.
The code-execution bugs
CVE-2026-117612 (SECURITY-4125): XStream resolves-to deserialization RCE. Jenkins protects XStream deserialization with an allowlist (JEP-200), but its custom converter did not apply that filter to classes referenced by the resolves-to attribute. An attacker with Overall/Read plus either a real user account or any permission to POST config.xml (such as Item/Configure, View/Configure, or Agent/Configure) can instantiate arbitrary types, potentially leading to remote code execution. The fix also turns on XStream’s own type-permission system as a second layer.
CVE-2026-117614 (SECURITY-4123): agent launch command approval bypass. For backward compatibility, Jenkins converted launch commands in old agent configurations into Command Agent Launcher launchers without checking administrator approval. Anyone with Agent/Configure could run arbitrary code in the controller JVM.
CVE-2026-117615, CVE-2026-117616, CVE-2026-117617: file read and write paths to RCE.
- Renaming an item followed symbolic links while copying its directory, giving attackers with Item/Create and Item/Configure arbitrary file read on the controller.
- An HTTP endpoint loaded agents by name without validation, so users with Overall/Read could load any
config.xmlon disk as an agent and overwrite files on save. - A race in artifact extraction let attackers with Item/Configure write files anywhere on the controller by archiving artifacts concurrently, for example from parallel Pipeline branches.
Account takeover bugs
CVE-2026-117618 (SECURITY-4122): setup-wizard admin race. During initial setup, Jenkins deletes the default account and creates the new administrator. The endpoint that lets unauthenticated users create a first account when none exist did not check whether the wizard had finished, so an unauthenticated attacker could slip in an administrator account during that window. Fresh installations exposed to a network are the ones at risk.
CVE-2026-117620 (SECURITY-4226): Old Data Monitor injection. Users with Overall/Read could plant a warning in “Manage Old Data.” If an administrator acted on it, attacker-controlled content could overwrite a user record, including the password on controllers that use Jenkins’ own user database.
CVE-2026-117619 (SECURITY-4189): remember-me cookie survives token revocation. Requests authenticated with HTTP Basic, including API tokens, could obtain a “remember me” cookie, so a stolen API token kept working after it was revoked.
The rest
The advisory also fixes four stored or agent-driven XSS bugs (CVE-2026-117613, CVE-2026-117621, CVE-2026-117622, CVE-2026-117623), a root-element restriction bypass in XStream (CVE-2026-117624), an HTTP proxy configuration leak (CVE-2026-117625, Medium), and a file browser path traversal that leaks file names and sizes (CVE-2026-117626, Medium). Jenkins notes that enforcing Content Security Policy on 2.539+ and LTS 2.541.1+ mitigates the known impact of several XSS issues.
AI is now a regular bug reporter
The Anthropic OSS program is credited on 11 of the 15 issues, either alone or alongside independent human researchers. Together with this month’s AI-discovered PHP2Shell and EPICS Base bugs, it’s another sign that AI-assisted auditing is filling vendor advisories faster than ever.
What to do
- Upgrade Jenkins weekly to 2.588 or Jenkins LTS to 2.580.2.
- Review who holds Overall/Read, Agent/Configure, and Item/Configure. Several bugs turn these “low” permissions into controller compromise.
- Don’t expose fresh Jenkins installations to untrusted networks before setup is complete.
- Rotate API tokens you suspect were exposed, and invalidate active sessions after upgrading.
- If the new XStream type-permission checks break a plugin, Jenkins documents the
hudson.util.XStream2.SUPPRESS_TYPE_PERMISSIONescape hatch. Use it only temporarily.
For more Java and developer infrastructure advisories, see our security tracker.