☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Fathom logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.8 🐛 CWE-120
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2018-25285

CVE-2018-25285 is a buffer overflow vulnerability in Fathom version 2.
📅 PUBLISHED: 2026-04-26 13:19 UTC 🔄 UPDATED: 2026-09-23 20:25 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.13%
👁️
0.13% probability
3.2× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1203
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: United States License: Proprietary
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
6.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2018-25285 is a buffer overflow vulnerability in Fathom version 2.4, a self-hosted web analytics platform. The flaw resides in the Authorization Code field, allowing a local attacker to crash the application by submitting an oversized input string of 6000 bytes. This denial of service (DoS) condition can be triggered by pasting the payload into the field and clicking "Activate". The vulnerability has a CVSS score of 5.5 (Medium) and an EPSS score of 0.0%, indicating low exploitation likelihood. No public exploit code or patch is available, and the vendor's status remains unknown.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

Fathom is a Go-based application distributed as a binary or via Docker. The vulnerability affects the core application logic, not a package dependency. Users should verify the integrity of their Fathom binary and consider sandboxing the application to limit local attack surface.

CVSS Breakdown & Threat Level

  • CVSS Score: 5.5 (Medium)
  • Vector: CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
  • Attack Vector: Local (AV:L) – requires physical or remote desktop access to the system.
  • Attack Complexity: Low (AC:L) – no special conditions needed.
  • Privileges Required: None (PR:N) – attacker does not need prior authentication.
  • User Interaction: Required (UI:R) – victim must paste the payload and click Activate.
  • Scope: Unchanged (S:U) – impact is confined to the vulnerable component.
  • Confidentiality Impact: None (C:N)
  • Integrity Impact: None (I:N)
  • Availability Impact: High (A:H) – application crash leads to denial of service.

Threat Level: Medium. The vulnerability requires local access and user interaction, limiting remote exploitation. However, in shared environments or kiosk setups, it could be weaponized for persistent DoS.

Deep Dive & Mechanics

The vulnerability is a classic buffer overflow in the Authorization Code input field of Fathom 2.4. The application fails to validate the length of the input before copying it into a fixed-size buffer. When a 6000-byte string is submitted, it overflows the buffer, corrupting adjacent memory and causing a segmentation fault or application crash.

Root Cause: The Authorization Code field is likely processed by a function that uses strcpy or similar unsafe C-style string handling without bounds checking. In Go, this could be due to unsafe pointer arithmetic or CGo bindings to a native library.

Attack Flow:

  1. Attacker gains local access to the Fathom web interface (e.g., via browser on the same machine).
  2. Attacker navigates to the settings page where the Authorization Code field is present.
  3. Attacker generates a 6000-byte string (e.g., using Python: 'A'*6000).
  4. Attacker pastes the string into the field and clicks "Activate".
  5. The application crashes, denying service to legitimate users.

Impact: The crash is immediate and may require manual restart of the Fathom service. Repeated exploitation can lead to persistent DoS.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is presumed to be in the handler for the Authorization Code field. A patched version would include input length validation.

Vulnerable Code (Conceptual):

func handleActivate(w http.ResponseWriter, r *http.Request) {
    authCode := r.FormValue("authorization_code")
    // Unsafe: no length check
    buffer := make([]byte, 256)
    copy(buffer, authCode) // Potential overflow if authCode > 256
    // ... process buffer
}

Patched Code (Conceptual):

func handleActivate(w http.ResponseWriter, r *http.Request) {
    authCode := r.FormValue("authorization_code")
    if len(authCode) > 256 {
        http.Error(w, "Authorization code too long", http.StatusBadRequest)
        return
    }
    buffer := make([]byte, 256)
    copy(buffer, authCode)
    // ... process buffer
}

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • Local access to Fathom 2.4 web interface (e.g., http://localhost:8080).
  • A browser or HTTP client (e.g., curl).

Exploit Steps:

  1. Generate the payload:
    python3 -c "print('A'*6000)" > payload.txt
    
  2. Send the payload via curl (assuming the form field name is authorization_code):
    curl -X POST http://localhost:8080/settings/activate \
         -d "authorization_code=$(cat payload.txt)"
    
  3. Observe the Fathom service crash (check process list or logs).

Expected Outcome: The Fathom process terminates, and the web interface becomes unresponsive.

Blue Team (Defensive)

Detection:

  • Monitor for unusually long POST requests to /settings/activate or similar endpoints.
  • Use WAF rules to block input exceeding 256 characters in the Authorization Code field.
  • Implement application-level input validation.

Mitigation:

  • Restrict local access to the Fathom interface via firewall or authentication.
  • Run Fathom in a container with resource limits to prevent crash from affecting host.
  • Apply a custom patch to limit input length (see patched code above).

Indicators of Compromise (IOCs)

  • Network: POST requests to /settings/activate with body containing authorization_code parameter of length > 256 bytes.
  • File: Log entries showing authorization_code with excessive length (e.g., 6000 characters).
  • Process: Fathom process crash with segmentation fault or out-of-memory error.
  • Memory: Corrupted heap or stack in Fathom process memory dump.

Detection Engineering

YARA Rule

rule CVE_2018_25285_Fathom_BufferOverflow {
    meta:
        description = "Detects oversized Authorization Code payload in Fathom 2.4"
        author = "Valters IT"
        date = "2025-04-10"
        cve = "CVE-2018-25285"
    strings:
        $payload = /authorization_code=[A-Za-z0-9%]{257,}/
    condition:
        $payload
}

Sigma Rule

title: Fathom Authorization Code Buffer Overflow Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects oversized Authorization Code field in Fathom 2.4
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-stem: '/settings/activate'
        cs-uri-query|contains: 'authorization_code'
        sc-bytes|>=: 6000
    condition: selection
falsepositives:
    - Legitimate long authorization codes (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2018-25285 Fathom Buffer Overflow Attempt"; flow:to_server; content:"POST"; http_method; content:"/settings/activate"; http_uri; content:"authorization_code"; http_client_body; pcre:"/authorization_code=[A-Za-z0-9%]{257,}/"; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate: Restrict local access to the Fathom interface using firewall rules or authentication.
  2. Short-term: Apply a custom patch to limit the Authorization Code field to 256 characters (see patched code).
  3. Long-term: Upgrade to a newer version of Fathom if available, or migrate to an alternative analytics platform.
  4. Compensating Controls: Run Fathom in a container with memory limits and restart policies (e.g., Docker --restart=always).
  5. Monitoring: Deploy the provided YARA, Sigma, and Suricata rules to detect exploitation attempts.

Valters IT
DevSecOps & Cyber Threat Intelligence

{/* [Security Hash: 619F1A4254AE963427ED6323] */}

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2018-25285/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.