Skip to main content

PullMD CVE-2026-76795

| EUVDEUVD-2026-63190 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-08-20 VulDB GHSA-p53p-vh92-qhpp
5.5
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

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

  1. Access
    Identify network-accessible PullMD instance
  2. Delivery
    Send unauthenticated GET /api?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/
  3. Exploit
    Server resolves and fetches cloud metadata endpoint
  4. Execution
    Response with IAM credentials returned to attacker
  5. Impact
    Use stolen credentials for cloud privilege escalation

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

No authentication is required - the CVSS 4.0 vector confirms PR:N and UI:N, meaning any network-accessible instance of PullMD 3.2.0 is exploitable without credentials or user interaction. The sole condition is that the /api endpoint is reachable from the attacker's network, which is the typical self-hosted deployment mode. Exploitation is most impactful when the host runs in a cloud environment with access to an instance metadata service (169.254.169.254 for AWS/GCP/Azure, 100.100.100.200 for Alibaba), but internal network reconnaissance is possible even in on-premises deployments. The vulnerability is not configuration-dependent - no special feature flag or non-default setting is required to be exploitable. Limiting factors include: deployments behind a network firewall that blocks external access to /api reduce remote exploitability; IMDSv2-only cloud instances require a session token that SSRF cannot trivially obtain; and post-patch deployments with an outbound proxy performing egress filtering reduce but do not fully eliminate risk due to the DNS-rebinding residual.

Impact

The CVSS 4.0 base score of 5.5 with E:P (proof-of-concept) reflects a moderate-severity finding with network-accessible, unauthenticated exploitation and low impact across confidentiality, integrity, and availability. There is no EPSS score provided in the input and no KEV listing, indicating no confirmed mass exploitation at the time of analysis. Despite the moderate numeric score, the practical risk for cloud-hosted instances is elevated: successful SSRF against the IMDSv1 metadata endpoint (169.254.169.254) can yield IAM credentials, enabling privilege escalation well beyond the CVSS impact ratings imply. The absence of IMDSv2 enforcement at the application layer means many real deployments are fully exposed. For on-premises self-hosted instances without cloud metadata services, risk is limited to internal network reconnaissance and port scanning via the server. The residual DNS-rebinding gap noted in the v3.3.0 changelog means even patched deployments are not fully hardened without an additional outbound proxy layer performing independent egress filtering.

Exploit ScenarioDerived

An unauthenticated attacker sends a crafted HTTP GET request to the publicly exposed PullMD /api endpoint with url=http://169.254.169.254/latest/meta-data/iam/security-credentials/; the server resolves the hostname and fetches the cloud metadata service, returning temporary IAM credentials in the response body. A public exploit demonstrating this technique was disclosed via GitHub issue #41 at https://github.com/AeternaLabsHQ/pullmd/issues/41.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 20, 2026

Server-Side Request Forgery in PullMD 3.2.0 exposes internal network resources and cloud metadata endpoints through the unauthenticated REST API endpoint GET /api, where the url parameter is passed without validation to the server's HTTP fetch stack. The vulnerability affects multiple fetch paths including the MCP read_url tool, Reddit resolver, and Playwright sidecar, all of which lacked SSRF guards prior to v3.3.0. A public exploit exists (GitHub issue #41), and the changelog confirms that 169.254.169.254 and 100.100.100.200 (AWS/Alibaba cloud metadata) were specifically demonstrated as targets; no active exploitation has been confirmed by CISA KEV.

RemediationAI

Upgrade to PullMD v3.3.0 (released 2026-07-08), available at https://github.com/AeternaLabsHQ/pullmd/releases/tag/v3.3.0, which introduced the SSRF guard module lib/ssrf.js across all fetch paths. Operators who need to allow specific internal hosts can set the new PULLMD_ALLOWED_HOSTS environment variable to a comma-separated list of CIDRs or exact hostnames (e.g., PULLMD_ALLOWED_HOSTS=10.0.5.0/24,wiki.internal); leaving it empty blocks all internal targets by default. Critically, the v3.3.0 changelog acknowledges that DNS-rebinding attacks are not fully mitigated - when running behind an outbound HTTP proxy, that proxy's egress filtering becomes the authoritative control; operators should configure the proxy to block RFC 1918 and cloud-metadata ranges independently. Cloud-hosted instances should additionally enforce IMDSv2 (requiring a session token for metadata access) to limit blast radius if SSRF is still triggered. If immediate upgrade is not possible, restricting network-level access to the /api endpoint via firewall or reverse-proxy ACL is the most effective compensating control, though it may break intended functionality.

Affected VersionsENISA

PullMD 3.2.0

Affected Packages

euvd pullmd no fix

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

PullMD (CPE cpe:2.3:a:aeternalabshq:pullmd:*:*:*:*:*:*:*:*) is a self-hosted Node.js application that fetches and processes remote URLs across several internal code paths: the core REST API (/api), an MCP (Model Context Protocol) read_url tool in lib/mcp.js, a Reddit short-link resolver in lib/reddit.js, and a Playwright browser sidecar client in lib/playwright-client.js. CWE-918 (Server-Side Request Forgery) is the root cause - user-supplied URLs were passed directly to the server's HTTP resolution stack without validating that the resolved destination IP fell outside private, loopback, link-local, CGNAT (100.64.0.0/10), or cloud-metadata address ranges. Because DNS resolution and socket binding were decoupled, the fix introduced in v3.3.0 via lib/ssrf.js resolves the hostname and checks it against a Node.js net.BlockList, but the changelog explicitly notes a residual DNS-rebinding risk: the guard does not pin the outbound socket to the checked address, so a name that resolves differently at connection time bypasses the protection.

Know when Pullmd 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

Vendor (VulDB) PRIMARY 5.5 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
vuln.today AI 6.5 MEDIUM

Network-accessible unauthenticated endpoint with no complexity; limited confidentiality and integrity impact via internal resource access; no availability impact from SSRF alone.

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

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
CVSS changed
Aug 20, 2026 - 01:22 NVD
6.9 (MEDIUM) 5.5 (MEDIUM)
CVE Published
Aug 20, 2026 - 00:45 cve.org
MEDIUM 5.5

DescriptionCVE.org

A vulnerability has been found in AeternaLabsHQ PullMD 3.2.0. This impacts an unknown function of the file /api of the component REST API Endpoint. The manipulation of the argument url leads to server-side request forgery. The attack can be initiated remotely. The exploit has been disclosed to the public and may be used. Upgrading to version 3.3.0 will fix this issue. The identifier of the patch is 96448894cc93ccecb0bdcbf263a9d25390a8455e. Upgrading the affected component is advised.

Threat Intelligence Overview

EPSS Score
0.4%
Top 72% exploitable
Prevalence
Low
niche self-hosted markdown/URL-fetching tool, limited enterprise footprint
Exploit
POC
Public exploit code exists
Data Quality
7 sources
Confidence: High

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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

48
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
PoC: +20
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