Skip to main content

Company Research Agent EUVDEUVD-2026-97001

| CVE-2026-108850 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-11 VulnCheck GHSA-5j4m-qx6m-86qc
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Reach exposed /generate-pdf endpoint
  2. Delivery
    Inject <img> markup into report_content
  3. Exploit
    ReportLab fetches attacker URL server-side
  4. Execution
    Server queries internal/external host
  5. Persist
    Image response embedded in returned PDF
  6. Impact
    Attacker reads leaked data and maps internal reachability

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 that the application's /generate-pdf endpoint be network-reachable and accept attacker-controlled report_content (the default behavior in Company Research Agent through 2.2.0, with no authentication per PR:N). The specific trigger is injecting unescaped ReportLab paragraph markup - inline <img> elements - into report_content, which ReportLab resolves by fetching the supplied src URL server-side. Limiting factors: impact is constrained to outbound request forgery and leakage of responses that can be rendered as images into the returned PDF (confidentiality-low, no integrity or availability impact), so non-image or non-renderable internal responses yield mainly reachability/probing signal rather than full content exfiltration; realistic internal-network risk also depends on whether the instance is internet-exposed and what internal services or metadata endpoints are routable from the server.

Impact

Signals converge on a genuine-but-moderate SSRF rather than a top-tier emergency. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms a network-reachable, low-complexity, unauthenticated flaw with no user interaction, which supports easy triggering; however impact is deliberately scoped low (VC:L/VI:N/VA:N, SC:L) because the primary outcome is outbound request forgery and leakage of image-renderable responses, not direct code execution or full data compromise, yielding a Medium 6.9. No EPSS score was provided, so exploitation probability cannot be quantified. The CVE is NOT in CISA KEV and no KEV-style active exploitation is claimed. A detailed technical writeup (hackmd) and a VulnCheck advisory with direct source-line references exist, so exploitation methodology is public even though no packaged exploit flag was supplied in the input. There are no conflicting signals between the vector and the description - both agree on remote, unauthenticated, low-impact SSRF. The main risk amplifier is deployment context: if an instance is reachable from the internet while sitting inside a network with sensitive internal services or cloud metadata endpoints, the low technical impact understates the real blast radius. Overall this is a real but second-tier priority, driven by ease of exploitation and internal-recon potential rather than by severity or confirmed in-the-wild use.

Exploit ScenarioDerived

An unauthenticated attacker sends a request to the /generate-pdf endpoint with report_content containing a ReportLab paragraph <img> tag whose src points to an internal host or cloud metadata address. The server renders the PDF, fetching the attacker-chosen URL and embedding the image response, which lets the attacker probe internal reachability and exfiltrate image-renderable content via the returned PDF. The technique is publicly documented in the referenced hackmd writeup and VulnCheck advisory, though no weaponized exploit is cited in the input.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 11, 2026

Server-side request forgery in Company Research Agent through 2.2.0 allows unauthenticated remote attackers to make the server issue outbound HTTP requests by injecting unescaped ReportLab paragraph markup - specifically inline img elements - into the report_content parameter handled by the /generate-pdf endpoint, with the fetched image responses embedded in the returned PDF to give an attacker a content-leakage and internal-reachability oracle. Impact is confined to confidentiality (only responses renderable as images leak content), with no integrity or availability effect, and no public exploit code has been identified at time of analysis, although a public technical writeup describes the injection technique. The issue is tracked as CWE-918 and rated CVSS 4.0 base 6.9 (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:L), consistent with an independent assessment of a genuine-but-moderate SSRF.

RemediationAI

No vendor-released patch was identified in the available data at time of analysis, so operators should either upgrade past 2.2.0 once a fixed release appears or apply compensating controls now. The most direct code-level fix is to treat report_content as data, not markup: XML-escape it with xml.sax.saxutils.escape (or reject/strip img and other tags) before it is handed to Paragraph in backend/utils/utils.py, accepting that any intentionally supported inline formatting in generated PDFs is lost. Where code changes are not practical, reduce exposure instead - require authentication or an API key on /generate-pdf and restrict the endpoint to trusted networks or an allowlisting reverse proxy, at the cost of breaking public or automated use of the PDF generation feature. Add outbound egress filtering on the application host that denies RFC1918, loopback, link-local and cloud metadata addresses (169.254.169.254, fd00:ec2::254) and permits only an explicit allowlist of external hosts the research feature needs, noting that overly broad blocking can break legitimate research fetches. Enforce IMDSv2 or equivalent metadata hardening so that even a successful SSRF to the metadata service yields little, and monitor logs for report_content containing img/src markup or unexpected internal hostnames as a detection signal. Advisory references: https://www.vulncheck.com/advisories/company-research-agent-through-2.2.0-ssrf-via-generate-pdf-reportlab-markup and https://hackmd.io/@1ExmmukzRMWN7B4gQ4W-4Q/guy-hartstein-company-research-agent-pdf-ssrf.

Affected VersionsENISA

company-research-agent 0 ≤2.2.0

Affected Packages

euvd company_research_agent 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

ReportLab does not treat Paragraph text as inert strings: it parses a small XML-like markup subset, and its img tag handler resolves the src attribute by fetching that URL server-side before embedding the result into the generated PDF. In the v2.2.0 tree of guy-hartstein/company-research-agent, backend/utils/utils.py (around line 196) passes attacker-supplied report_content into a Paragraph without escaping it, and application.py (lines ~264-265) exposes that path through the /generate-pdf endpoint, so the XML-escaping step that would neutralize the markup is simply absent. CWE-918 describes the root-cause class: a user-controlled URL is dereferenced by the server without validating scheme, host, or destination network. Because ReportLab must be able to render the response as an image for the attacker to read it back, the practical leak channel is image-shaped responses or behavioural differences (timing, errors), which is why the assessed impact is confidentiality-low rather than full internal-content exfiltration - non-image internal responses still yield a useful reachability/probing signal. The endpoint is network-reachable by default, and the PR:N component of the CVSS vector confirms that authentication is not required for exploitation.

Know when Company Research Agent 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 (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N
vuln.today AI 5.8 MEDIUM

Remote unauthenticated SSRF with no UI gives AV:N/AC:L/PR:N/UI:N; server-initiated requests to other systems set S:C, and leakage of image responses is C:L with no integrity or availability impact.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

Company Research Agent through 2.2.0 contains a server-side request forgery vulnerability that allows unauthenticated attackers to trigger outbound requests by injecting unescaped ReportLab paragraph markup into the /generate-pdf endpoint. Attackers can embed inline img elements in report_content to make the server fetch internal or external hosts, leaking image responses in returned PDFs and probing reachability.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Rare
single-maintainer open-source AI research agent, tiny production footprint
Social Media
1
Sightings
Data Quality
5 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
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
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
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