Skip to main content

Woodpecker CI CVE-2026-58369

| EUVDEUVD-2026-40357 MEDIUM
NULL Pointer Dereference (CWE-476)
2026-06-30 VulnCheck GHSA-xq6m-xxrf-h53q
6.9
CVSS 4.0 · Vendor: VulnCheck
Share

Severity by source

Vendor (VulnCheck) PRIMARY
6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
5.3 MEDIUM

Network-reachable with no auth or complexity barriers; availability impact is low because gin recovery prevents service crash; no confidentiality or integrity impact; no scope change.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

2
Analysis Generated
Jun 30, 2026 - 17:23 vuln.today
CVSS changed
Jun 30, 2026 - 17:22 NVD
5.3 (MEDIUM) 6.9 (MEDIUM)

DescriptionCVE.org

Woodpecker before 3.15.0 registers the /api/orgs/lookup/*org_full_name endpoint without authentication middleware, and the LookupOrg handler unconditionally dereferences the session user (user.ForgeID, via ForgeFromUser) when selecting the forge to query. For an unauthenticated request session.User returns nil, so any unauthenticated HTTP request triggers a NULL pointer dereference in the handler. The panic is recovered by gin recovery middleware and the server continues serving (returning HTTP 500), but each request writes a multi-line panic stack trace to the error log. A low-bandwidth unauthenticated attacker can repeatedly probe the endpoint to flood the logs (about 37 lines per request), inflating disk usage and downstream log-ingestion cost and burying legitimate log events.

AnalysisAI

Unauthenticated NULL pointer dereference in Woodpecker CI before 3.15.0 allows any network attacker to flood server logs by repeatedly probing the unprotected /api/orgs/lookup/ endpoint. The LookupOrg handler unconditionally dereferences the session user object, which is nil for unauthenticated callers, triggering a Go panic on every such request; gin's recovery middleware catches each panic and returns HTTP 500, keeping the server alive but writing approximately 37 lines of stack trace per request to the error log. No active exploitation is confirmed in CISA KEV, but the zero-prerequisite attack surface - no credentials, no special configuration, no user interaction - makes low-bandwidth log-flooding trivially achievable by any unauthenticated network attacker.

Technical ContextAI

Woodpecker CI is an open-source, community-maintained CI/CD pipeline server written in Go; CPE cpe:2.3:a:woodpecker-ci:woodpecker:*:*:*:*:*:*:*:* covers all releases prior to the fixed version 3.15.0. The root cause is CWE-476 (NULL Pointer Dereference): when registering the /api/orgs/lookup/*org_full_name route, the application omits authentication middleware, so session.User() returns nil for unauthenticated callers. The LookupOrg handler then calls user.ForgeID via ForgeFromUser without a nil guard, causing the Go runtime to panic. The gin web framework's built-in recovery middleware intercepts the panic, serializes the full goroutine stack trace to the error log, and returns an HTTP 500 response - preventing a crash but making the log subsystem a denial-of-service vector. The bug is a structural omission at route registration time rather than a logic error inside the handler itself.

RemediationAI

Upgrade Woodpecker CI to version 3.15.0 or later; this is the vendor-released patch confirmed by release tag v3.15.0, pull request #6652, and commit 1fbacac3a43b75b6e5a0a40a4f720a0017c62010 (https://github.com/woodpecker-ci/woodpecker/commit/1fbacac3a43b75b6e5a0a40a4f720a0017c62010), with the full VulnCheck advisory at https://www.vulncheck.com/advisories/woodpecker-unauthenticated-null-pointer-dereference-in-api-orgs-lookup-enables-log-flooding-denial-of-service. If immediate upgrade is not possible, deploy a reverse proxy or WAF rule to block all unauthenticated requests to the /api/orgs/lookup/ path prefix; this eliminates the attack surface without affecting authenticated user workflows, though it requires a proxy layer already in place. As an additional compensating control, configure log rotation with size caps and rate limits on Woodpecker's error output to bound disk consumption during an attack - note this may cause log loss during high-volume probing, which itself impairs incident visibility.

Share

CVE-2026-58369 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy