Skip to main content

Campfire EUVDEUVD-2026-114058

| CVE-2026-100355 LOW
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-30 security-advisories@github.com
3.1
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to Campfire as a user
  2. Exploit
    Post message with link to hostname resolving to CGNAT/NAT64/6to4 range
  3. Execution
    Server unfurl fetches the internal address
  4. Impact
    Return limited OpenGraph metadata from internal endpoint

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated Campfire user (PR:L) who can post a chat message, and the server must have link-unfurl / OpenGraph preview fetching enabled (the default behavior that triggers the server-side fetch). The attacker must control DNS so a hostname in a posted link resolves into one of the ranges the pre-1.4.5 PrivateNetworkGuard failed to block: CGNAT 100.64.0.0/10, NAT64 64:ff9b::/96 or 64:ff9b:1::/48, or 6to4 2002::/16 (NAT64 and 6to4 additionally embedding the intended internal IPv4 target). Limiting factors: exploitation only affects versions <= 1.4.4; it needs authentication rather than anonymous access; and the practical payoff is bounded because the unfurl returns only OpenGraph metadata and most internal endpoints return none, with no integrity or availability impact.

Impact

This is a genuinely low-priority issue, and the signals are consistent rather than conflicting. The CVSS 3.1 base score is 3.1 (Low) with vector AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N: network-reachable but high attack complexity, requiring an authenticated user (PR:L), with only limited confidentiality impact and no integrity or availability impact. The vuln.today decision label is 'monitor', the weakest urgency tier, which aligns with the low CVSS. There is no CISA KEV listing and no EPSS score was provided in the input, so exploitation probability cannot be quantified from the data. No public exploit code or PoC reference is present - the only references are the vendor fix commit, pull request #225, the v1.4.5 release tag, and the GHSA advisory, all of which are remediation artifacts, not exploit code. The real-world payoff is intrinsically capped: the SSRF only returns OpenGraph metadata, and the advisory and description both note most internal endpoints return none, so even successful exploitation leaks little. This is a correctly-rated low-severity SSRF, not a high-CVSS-but-overblown case nor an under-rated sleeper - treat it as routine patch-when-convenient hygiene consistent with the 'monitor' label.

Exploit ScenarioDerived

An authenticated Campfire user posts a chat message containing a link whose hostname resolves into an unguarded special-use range (CGNAT 100.64.0.0/10, NAT64 64:ff9b::/96 or 64:ff9b:1::/48, or 6to4 2002::/16, the latter two embedding an internal IPv4 target such as a cloud metadata address). The server fetches the URL to build an OpenGraph unfurl preview, issuing a request to the internal resource and returning any OpenGraph metadata that endpoint exposes. No public exploit identified at time of analysis; the high attack complexity reflects the need to control DNS resolution into these ranges and the limited data actually retrievable.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 30, 2026

Server-side request forgery in Campfire 1.4.4 and earlier allows an authenticated user who can post a chat message to steer the server's OpenGraph link-unfurl fetcher toward internal network resources by supplying a link whose hostname resolves into special-use ranges the guard did not recognise - CGNAT 100.64.0.0/10, NAT64 64:ff9b::/96 or 64:ff9b:1::/48, and 6to4 2002::/16, the last two of which can embed an internal IPv4 target in their low bits. Exploitation requires authentication (CVSS PR:L), attacker-controlled DNS for the posted link, and the unfurl preview path being active, and the practical payoff is bounded because an unfurl returns only OpenGraph metadata and most internal endpoints return none - there is no integrity or availability impact. No public exploit code has been identified at time of analysis, and the vuln.today decision label is monitor, consistent with the low assessed severity (CVSS 3.1, availability and integrity unaffected).

RemediationAI

Upgrade to Campfire 1.4.5, the vendor-released patch (release notes at https://github.com/basecamp/once-campfire/releases/tag/v1.4.5; fix landed via PR https://github.com/basecamp/once-campfire/pull/225 and commit https://github.com/basecamp/once-campfire/commit/69e8cd788593cf421c32626a5273c0b449ceee9b), which adds explicit disallowed IPv4/IPv6 CIDR lists covering CGNAT, NAT64, 6to4, Teredo, multicast, documentation and benchmarking ranges, blocks IPv4-mapped and IPv4-compatible addresses outright, and re-checks the IPv4 address embedded in NAT64 prefixes against the IPv4 rules. The advisory documents no separate interim workaround and presents the 1.4.5 upgrade as the fix; where an upgrade cannot be scheduled immediately, note that the vulnerable code path is the outbound link-unfurl fetch, so deployments that suppress or disable OpenGraph preview fetching remove the request trigger at the cost of losing link previews, and limiting message-posting rights to trusted users reduces exposure at the cost of collaboration features. Because the guidance is to monitor rather than act immediately, patching can be scheduled routinely; the practical risk is bounded by the metadata-only response and the absence of any identified public exploit.

Affected VersionsENISA

once-campfire < 1.4.5

Affected Packages

euvd once_campfire fix: 1.4.5

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

Campfire builds link previews by having the server fetch URLs found in chat messages through RestrictedHTTP, whose PrivateNetworkGuard resolves a hostname and rejects addresses that point inside the local network - a classic CWE-918 server-side request forgery defence. The pre-1.4.5 implementation relied on Ruby's IPAddr#private?, IPAddr#loopback? and IPAddr#link_local? predicates plus IPv4-mapped and IPv4-compatible checks. Those predicates cover RFC 1918, loopback and link-local space but not several special-use blocks: RFC 6598 carrier-grade NAT (100.64.0.0/10), the NAT64 well-known prefix 64:ff9b::/96 (RFC 6052/6146) and local-use prefix 64:ff9b:1::/48 (RFC 8215), and the deprecated 6to4 transition prefix 2002::/16. The two NAT64 forms and 6to4 carry an IPv4 address in their low 32 bits, so an attacker can encode an internal target such as 169.254.169.254 or 10.0.0.x inside an IPv6 literal that the guard evaluated as a normal IPv6 address and allowed. The upstream commit 69e8cd7 replaces the predicate-only logic with explicit disallowed-CIDR lists for IPv4 (including 0.0.0.0/8, 100.64.0.0/10, 192.0.0.0/24, 198.18.0.0/15, multicast 224.0.0.0/4 and reserved 240.0.0.0/4) and IPv6 (::/128, 100::/64, Teredo 2001::/32, 2001:2::/48, 2001:db8::/32, 6to4 2002::/16, fec0::/10, ff00::/8), blocks IPv4-mapped and IPv4-compatible forms unconditionally, and for NAT64 prefixes extracts the embedded IPv4 address and re-runs the IPv4 rules so NAT64 to a public destination still works while NAT64 to an internal one is denied. ULA (fc00::/7, including the AWS IMDSv6 address fd00:ec2::254), loopback and link-local remain covered by the existing predicates. The trigger path is the link-unfurl fetch described in the advisory; the sources do not describe any additional trigger.

Know when the next one hits your stack

  • 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

Vendor (github) PRIMARY 3.1 LOW
AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 3.1 LOW

Authenticated user posts the link so PR:L; controlling DNS into specific unguarded ranges and the metadata-only return make AC:H and C:L, with no integrity or availability impact.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Oct 30, 2026 - 16:03 EUVD

DescriptionCVE.org

Campfire is a web-based chat application. In version 1.4.4 and earlier, when a Campfire message contains a link, the server fetches it to build an OpenGraph unfurl preview. RestrictedHTTP::PrivateNetworkGuard relied on Ruby's IPAddr#private?  IPAddr#loopback?, and IPAddr#link_local? predicates plus IPv4-mapped and IPv4-compatible checks, which do not cover several special-use ranges. An authenticated user can post a link to a hostname resolving to CGNAT 100.64.0.0/10, NAT64 64:ff9b::/96 or 64:ff9b:1::/48, or 6to4 2002::/16 to bypass the guard and cause server-side requests to internal network resources. The NAT64 and 6to4 ranges can embed an internal IPv4 target. Confidentiality impact is limited to returned OpenGraph metadata, and most internal endpoints return none. There is no integrity or availability impact. An initial fix was released in version 1.4.5.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Low
Self-hosted Basecamp ONCE Campfire chat; niche, limited deployment footprint
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

16
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +16
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

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