Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend unauthenticated HTTP GET to /api/orgs/lookup/<any_value>
-
DeliveryLookupOrg handler calls session.User() which returns nil
-
ExploitNil pointer dereference on user.ForgeID triggers Go runtime panic
-
ExecutionGin recovery middleware catches panic and returns HTTP 500
-
Persist37-line goroutine stack trace written to error log per request
-
ImpactRepeat at scale to exhaust disk or overwhelm log pipeline
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The /api/orgs/lookup/*org_full_name API endpoint must be network-reachable - Woodpecker CI instances exposed to the internet or accessible from untrusted internal networks are at risk. No authentication, no account, no specific Woodpecker configuration, and no user interaction is required; any well-formed HTTP GET to this path triggers the nil dereference. Exploitation is structurally bounded by gin's panic recovery middleware, which prevents full service outage - the server continues processing legitimate requests and returns HTTP 500 on the affected endpoint rather than crashing entirely. The impact ceiling is therefore log flooding, storage cost inflation, and log-signal degradation rather than complete availability loss. Instances with metered log ingestion (e.g., cloud SIEM with per-GB pricing), size-limited disk partitions hosting logs, or heavy reliance on error-log alerting face the highest operational impact. Instances with no internet exposure and generous log storage headroom face limited real-world risk. |
| Impact | The CVSS 4.0 score of 6.9 with VA:L (low availability impact to the vulnerable system) accurately reflects the constrained blast radius: the server remains operational due to gin's recovery middleware, so impact is limited to log flooding, disk exhaustion, elevated log-ingestion costs, and analyst alert fatigue. The attack metrics AV:N/AC:L/AT:N/PR:N/UI:N confirm trivial, unauthenticated, network-reachable exploitation with no complexity barriers, making it fully automatable. EPSS data was not provided in the source intelligence, so probabilistic exploitation likelihood cannot be quantified. There is no CISA KEV listing and no confirmed public POC at time of analysis, reducing the urgency tier compared to a fully weaponized vulnerability. Real-world priority is moderate: internet-exposed Woodpecker instances with metered or size-capped log storage, or environments relying on log-based alerting, face meaningful operational impact. Instances behind network controls with generous log capacity face lower near-term risk but should still patch promptly given zero-complexity exploitation. |
| Exploit ScenarioDerived | An unauthenticated attacker sends a high-frequency stream of HTTP GET requests to /api/orgs/lookup/<arbitrary_string> on an internet-facing Woodpecker CI server. No exploit code or special tooling is required - a curl loop or any HTTP benchmarking tool suffices. At modest rates (e.g., a few hundred requests per second), the attacker inflates disk usage by hundreds of megabytes per hour in stack trace log output and overwhelms downstream SIEM ingestion pipelines, burying legitimate CI/CD and security log events. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 30, 2026
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.
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.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
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.
Know when Woodpecker gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
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
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.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
More in Woodpecker
View allApproval-gate bypass in Woodpecker CI before 3.15.0 lets an attacker who can open a merge request from a fork against a
Woodpecker is a simple yet powerful CI/CD engine with great extensibility. Rated high severity (CVSS 8.8), this vulnerab
Woodpecker is a simple yet powerful CI/CD engine with great extensibility. Rated high severity (CVSS 8.8), this vulnerab
Woodpecker is a community fork of the Drone CI system. Rated high severity (CVSS 8.1), this vulnerability is remotely ex
Woodpecker before 0.15.1 allows XSS via build logs because web/src/components/repo/build/BuildLog.vue lacks escaping. Ra
EUVD-2026-40357
GHSA-xq6m-xxrf-h53q
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB