← Back to Feed CACHED · 2026-05-17 09:42:19 · cache_key CVE-2025-29912
CVE-2025-1345 · Disclosed 2025-09-15

Unverified Jenkins remote code execution via plugin claim

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
01 · The Real Story

This is a fire alarm with smoke on the brochure but none in the building

The only concrete claim we could corroborate is a secondary page on CyberSec.au asserting that CVE-2025-1345 is a *Jenkins remote code execution via plugin* issue, published on 2025-09-15, affecting Jenkins and allegedly fixed by 2.426.2 LTS or 2.470 weekly. We did not find a matching Jenkins security advisory, Jenkins published issue, GitHub Advisory Database entry, or other primary vendor/CNA record that defines affected version ranges, root cause, exploitation path, or a real fix line.

In practice this is not a vulnerability-priority problem; it is an *intel-quality* problem. The secondary claim is internally weak and the version guidance is suspect: Jenkins' own 2024-01-24 advisory shows 2.426.2 was itself an affected version for CVE-2024-23897, making it a dubious 'fixed version' for a later, unrelated alleged RCE. Without a primary record, technical write-up, or stable version mapping, treating this as emergency patching would waste defender time.

"CVE-2025-1345 = ASSESSED AT IGNORE: this looks like an uncorroborated ghost CVE, not a patching emergency."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Find a reachable Jenkins controller

Any real exploit would start with a live Jenkins controller or plugin surface that an attacker can reach. Jenkins is widely deployed, but the alleged CVE gives no endpoint, plugin name, or protocol path to test. That means even the first exploit step is undefined from authoritative sources.
Conditions required:
  • A Jenkins controller is deployed
  • The attacker can reach the relevant Jenkins interface
  • The alleged vulnerable component actually exists
Where this breaks in practice:
  • No primary advisory identifies the exposed endpoint
  • No authoritative source names the affected plugin or feature
  • Enterprise Jenkins is often reverse-proxied, segmented, and not directly internet-exposed
Detection/coverage: Version-based scanners may still raise the ID from secondary feeds, but there is no primary signature material or vendor-authored detection guidance.
STEP 02

Satisfy the attacker position

The only secondary description claims *authenticated attackers* can execute code. That is already a major downgrade from a true unauthenticated internet RCE because it implies prior compromise, valid credentials, or an insider foothold. A hypothetical exploit chain therefore begins post-auth, not at initial access.
Conditions required:
  • Valid Jenkins credentials or equivalent authenticated session
  • Whatever permission set the undefined plugin path requires
Where this breaks in practice:
  • Authenticated-only exploitation sharply reduces reachable population
  • SSO, MFA, IP allowlists, and RBAC commonly sit in front of enterprise Jenkins
  • No source explains whether low-privilege users are enough
Detection/coverage: If this were real, authentication logs, SSO telemetry, and Jenkins audit events would matter more than external scanning.
STEP 03

Hit the undocumented bug path

For code execution to happen, the attacker would need a concrete request path, plugin function, parser flaw, deserialization sink, or script execution primitive. None of that is documented in a vendor advisory, CNA record, GHSA, or researcher write-up that we could verify. So the exploit path is not just hard; it is presently unsubstantiated.
Conditions required:
  • A real vulnerable code path exists
  • The path is still reachable in the installed Jenkins topology
Where this breaks in practice:
  • No PoC, no crash reproducer, no patch diff, no IOC set
  • No confirmed affected version range to validate against
  • The claimed fix versions are not trustworthy
Detection/coverage: There is no reliable exploit-specific detection coverage because the bug mechanics are not publicly documented.
STEP 04

Obtain controller code execution

If the previous undocumented steps were real and successful, impact could be severe because Jenkins controllers often hold build secrets, SCM credentials, signing material, and deployment paths. But that impact is theoretical here because the existence and shape of the vulnerability are not established by primary evidence.
Conditions required:
  • Successful exploitation of the undocumented bug
  • Controller-side execution context
Where this breaks in practice:
  • The entire exploit chain rests on an unverified CVE record
  • No active exploitation evidence or KEV listing is present
Detection/coverage: Standard post-exploitation telemetry would be EDR, process creation, child java anomalies, shell launches, credential access, and unusual outbound connections.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo authoritative exploitation evidence found; not KEV-listed per your input, and no primary campaign reporting was located.
Primary advisory statusNo verified Jenkins advisory, no matching Jenkins published issue, and no GitHub Advisory Database hit for CVE-2025-1345 were found in the sources reviewed.
Secondary claimCyberSec.au claims a Jenkins RCE published 2025-09-15 with CVSS 9.8, but provides no vendor-backed technical detail.
PoC availabilityNo public PoC, exploit repo, patch diff, or researcher write-up corroborating this ID was found.
EPSSUnavailable / not reliably attributable because we could not verify a canonical public record for this CVE.
CVSS / vectorNo CNA/vendor CVSS found. The only observed score was a secondary-site claim of 9.8, with no published vector we could verify.
Affected versionsUnverified. The only claim says Jenkins is affected, but it does not define a trustworthy affected range or plugin scope.
Fixed versionsUnverified. The secondary source says 2.426.2 LTS or 2.470 weekly, but Jenkins' 2024-01-24 advisory shows 2.426.2 was itself affected by CVE-2024-23897, undermining confidence in that patch guidance.
Exposure / scanningInternet-facing Jenkins exists in meaningful numbers, but exposure data is not actionable for this CVE without a verified vulnerable endpoint or version range.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to IGNORE (0.8/10)

The decisive factor is absence of a primary record: no vendor advisory, no CNA-backed metadata, no GHSA, and no Jenkins security issue corroborates this CVE. Once that is combined with the only public claim being *authenticated* and internally inconsistent on fixed versions, this stops being a patch emergency and becomes a documentation-and-suppression exercise.

HIGH Assessment that the publicly available evidence is insufficient for emergency patch prioritization
MEDIUM Assessment that the CyberSec.au claim is unreliable or malformed rather than a silently weaponized Jenkins zero-day

Why this verdict

  • No primary record: we found no verified Jenkins advisory, no Jenkins published issue match, and no GitHub Advisory Database match for CVE-2025-1345.
  • Authenticated-only even in the secondary claim: the lone public description says attackers must already be authenticated, which is post-initial-access friction and a major downward pressure on severity.
  • Patch story is internally inconsistent: the same secondary source names 2.426.2 LTS as fixed, while Jenkins' own 2024-01-24 advisory shows 2.426.2 was still vulnerable in a real core+CLI issue and fixed only in 2.426.3.

Why not higher?

A higher rating would require at least one of: a CNA/vendor advisory, reproducible exploit details, a trustworthy affected range, or active exploitation evidence. We have none of those. Scoring a ghost record as HIGH or CRITICAL is how teams burn change windows on rumor.

Why not lower?

We are not calling it nonexistent with absolute certainty because secondary references do exist and malformed/pre-publication records occasionally happen. The right response is to document the gap, suppress the ticket for now, and keep watching primary Jenkins/CVE channels.

05 · Compensating Control

What to do — in priority order.

  1. Suppress the CVE in triage — Mark CVE-2025-1345 as unsubstantiated / no primary advisory in your VM platform and ticketing workflow. For an IGNORE verdict there is no patch deadline; document the rationale now and prevent churn from duplicate scanner tickets.
  2. Monitor Jenkins primary channels — Subscribe to Jenkins security advisories and review the published issues feed for any later authoritative mention of this ID or an equivalent security issue. For an IGNORE verdict, this is a watch action rather than an emergency measure.
  3. Maintain normal Jenkins hygiene — Keep Jenkins on supported releases and continue your routine hardening program, but do it under ordinary maintenance governance, not as a CVE-2025-1345 fire drill. This preserves effort for verified internet-reachable flaws.
What doesn't work
  • Emergency patching to 2.426.2 based on the secondary claim doesn't help; that version is not a trustworthy fix point for this alleged issue.
  • Using general internet exposure counts for Jenkins doesn't validate this CVE; exposure without a confirmed bug path is noise.
  • Treating KEV absence alone as proof of safety doesn't help either; the core problem here is lack of any authoritative vulnerability record, not just lack of exploitation.
06 · Verification

Crowdsourced verification payload.

Run this on the Jenkins controller host or on an auditor workstation with filesystem access to the Jenkins package/jenkins.war. Invoke it as bash verify-cve-2025-1345.sh /usr/share/java/jenkins.war or with no argument to let it probe common package locations. It needs only local read access; no root is required unless your package paths are restricted.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# verify-cve-2025-1345.sh
# Purpose: Determine whether a host can be authoritatively classified for CVE-2025-1345.
# Because no trustworthy vendor/CNA advisory or affected version range was verified,
# this script reports UNKNOWN for Jenkins installations and prints the discovered version.
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN, 3=usage/runtime error

set -u

TARGET="${1:-}"
VERSION=""
FOUND="0"

read_manifest_version() {
  local file="$1"
  if command -v unzip >/dev/null 2>&1; then
    unzip -p "$file" META-INF/MANIFEST.MF 2>/dev/null | awk -F': ' '/^Jenkins-Version:/{print $2; exit}' | tr -d '\r'
    return 0
  fi
  if command -v jar >/dev/null 2>&1; then
    local tmpdir
    tmpdir="$(mktemp -d)" || return 1
    (cd "$tmpdir" && jar xf "$file" META-INF/MANIFEST.MF >/dev/null 2>&1)
    awk -F': ' '/^Jenkins-Version:/{print $2; exit}' "$tmpdir/META-INF/MANIFEST.MF" 2>/dev/null | tr -d '\r'
    rm -rf "$tmpdir"
    return 0
  fi
  return 1
}

probe_paths() {
  local candidates=(
    "$TARGET"
    /usr/share/java/jenkins.war
    /usr/share/jenkins/jenkins.war
    /usr/lib/jenkins/jenkins.war
    /opt/jenkins/jenkins.war
  )

  for c in "${candidates[@]}"; do
    [ -n "$c" ] || continue
    if [ -f "$c" ]; then
      VERSION="$(read_manifest_version "$c")"
      if [ -n "$VERSION" ]; then
        FOUND="1"
        echo "Detected Jenkins WAR: $c"
        echo "Detected Jenkins version: $VERSION"
        return 0
      fi
    fi
  done

  if command -v jenkins >/dev/null 2>&1; then
    VERSION="$(jenkins --version 2>/dev/null | head -n1 | tr -d '\r')"
    if [ -n "$VERSION" ]; then
      FOUND="1"
      echo "Detected Jenkins CLI version: $VERSION"
      return 0
    fi
  fi

  return 1
}

if ! probe_paths; then
  echo "UNKNOWN - Jenkins version could not be determined from common paths or CLI."
  exit 2
fi

# Authoritative classification is impossible with current public evidence.
# Do NOT infer vulnerable/patched from secondary, conflicting claims.
echo "UNKNOWN - CVE-2025-1345 has no verified vendor/CNA advisory or trustworthy affected/fixed range in reviewed sources."
exit 2
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: close this as an intel-quality exception, not an emergency patch motion. By end of day, document that CVE-2025-1345 has no corroborated primary advisory, suppress duplicate scanner findings, and keep Jenkins on its normal supported-release program; for an IGNORE verdict there is no noisgate mitigation SLA and no noisgate remediation SLA because there is no action required beyond recording the rationale unless a real vendor/CNA record appears later.

Sources

  1. CyberSec.au claim page for CVE-2025-1345
  2. CyberSec.au CVE database entry showing the same Jenkins claim
  3. Jenkins Security landing page
  4. Jenkins published security issues archive
  5. Jenkins Security Advisory 2025-03-05
  6. Jenkins Security Advisory 2024-01-24
  7. GitHub Advisory Database
  8. CVE.org site search landing page
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.