LOW 2.5

CVE-2026-14702: Weak Randomness in markdownify-mcp Temporary File Creation

CVE-2026-14702 is a low-severity flaw in the markdownify-mcp library (versions up to 1.1.0) that weakens the randomness used to generate temporary file names. An attacker with local access to a system running this library could potentially predict or manipulate temporary file names, though doing so requires significant technical skill and knowledge of the affected code. The vulnerability does not enable remote exploitation and has minimal direct impact on system confidentiality or availability.

Source data · NVD / CISA · public domain

CVSS
3.1 · 2.5 LOW · CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N
Weaknesses (CWE)
CWE-310, CWE-330
Affected products
0 configuration(s)
Published / Modified
2026-07-05 / 2026-07-06

NVD description (verbatim)

A flaw has been found in zcaceres markdownify-mcp up to 1.1.0. This impacts the function saveToTempFile of the file src/Markdownify.ts of the component webpage-to-markdown/youtube-to-markdown/bing-search-to-markdown. This manipulation causes insufficiently random values. The attack is restricted to local execution. A high degree of complexity is needed for the attack. The exploitability is said to be difficult. The exploit has been published and may be used. The pull request to fix this issue awaits acceptance.

7 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability exists in the saveToTempFile function within src/Markdownify.ts, which is responsible for handling temporary file creation during markdown conversion operations (webpage-to-markdown, youtube-to-markdown, bing-search-to-markdown). The function generates temporary file names using insufficiently random values, falling under cryptographic weak randomness (CWE-330) and improper handling of cryptographic keys or random numbers (CWE-310). An attacker with local code execution privileges could exploit this to predict temporary file paths and gain read access to conversion data before cleanup. The flaw requires high attack complexity and local execution context, significantly limiting real-world risk.

Business impact

For organizations embedding markdownify-mcp in local applications or services, this flaw introduces a minor confidentiality risk. If temporary files created during markdown conversion contain sensitive input data—such as proprietary content from web pages or search results—a local attacker could theoretically read that data by predicting file paths. The risk is confined to multi-user systems or environments where attackers already have shell-level access. Single-tenant or air-gapped deployments face negligible exposure.

Affected systems

The vulnerability affects zcaceres/markdownify-mcp versions up to 1.1.0. Verify your installed version by checking your package.json or package-lock.json files if you consume this library. The impact is limited to local users on systems where the library is actively processing markdown conversions. Downstream consumers of this library who integrate it into web services or APIs should review their deployment architecture to determine if temporary files are accessible to untrusted local users.

Exploitability

The CVSS 3.1 score of 2.5 (LOW) reflects the high barriers to exploitation: the attacker must already have local system access, the attack complexity is high, and predictable file names require reverse-engineering the weak randomness algorithm. An exploit has been published, but practical weaponization remains difficult without deep knowledge of the specific temporary file naming scheme and active conversion timing. Remote exploitation is not feasible.

Remediation

Upgrade to a patched version of markdownify-mcp that implements cryptographically secure randomness for temporary file naming. A pull request addressing this issue is pending acceptance and integration by the project maintainers. Monitor the official zcaceres/markdownify-mcp repository for release announcements. In the interim, if feasible, restrict local system access to only trusted users and ensure temporary directories have appropriate file permissions.

Patch guidance

Verify the latest available version of markdownify-mcp against the official npm registry or GitHub repository. The fix should ensure that the saveToTempFile function uses cryptographically secure random number generation (e.g., Node.js crypto.randomBytes or similar) instead of weak randomization. If you maintain internal applications using this library, test the patched version in a non-production environment before rolling out broadly. Confirm that the updated version does not introduce breaking changes to your markdown conversion workflows.

Detection guidance

Monitor temporary file creation patterns in directories where your application stores conversion artifacts. If you observe temporary files with predictable naming sequences (e.g., incrementing numbers or simple patterns), investigate whether the vulnerable library version is in use. Review access logs for unusual file system access attempts targeting temporary directories. Organizations running markdownify-mcp should periodically audit installed package versions and supply-chain dependencies.

Why prioritize this

This vulnerability merits low urgency in most environments due to its CVSS 2.5 rating, local-only attack vector, and high attack complexity. However, organizations operating multi-tenant systems, shared hosting environments, or systems handling sensitive markdown conversion data should prioritize patching before the fixed version is released and verified. Single-tenant or offline deployments can defer action until a stable patch is available.

Risk score, explained

The CVSS 3.1 score of 2.5 reflects: (1) Local attack vector (AV:L)—requires existing system access; (2) High attack complexity (AC:H)—demands technical sophistication to predict randomness; (3) Low privilege requirements (PR:L)—any local user, not just administrators, could attempt exploitation; (4) Confidentiality impact only (C:L)—no integrity or availability effects; (5) Unchanged scope (S:U). The published exploit slightly elevates concern but does not change the fundamental difficulty of weaponization in typical deployments.

Frequently asked questions

Do I need to patch this immediately if I use markdownify-mcp?

No. The vulnerability requires local system access and high technical complexity. If your deployment runs in a single-tenant environment with restricted shell access, the risk is minimal. Patch when a stable version is available, but do not treat this as a critical emergency.

What happens if a local attacker exploits this flaw?

They can read the temporary markdown files created during conversion—potentially exposing the original web page content, YouTube transcripts, or Bing search results that were being converted. They cannot modify those files or compromise the application directly.

Is this vulnerability exploitable remotely?

No. The attack vector is exclusively local. Remote exploitation is not possible, and this vulnerability does not affect the security posture of publicly exposed services.

How do I check if a patched version exists?

Check the official npm package page (npmjs.com/package/markdownify-mcp) and the zcaceres/markdownify-mcp GitHub repository for the latest releases. Verify the pull request status to confirm the fix is merged and published.

This analysis is based on publicly available vulnerability data as of the publication date. Patch availability and version numbers should be verified against official vendor sources and npm registries. The presence of a published exploit does not guarantee public or active weaponization. Organizations should test patches in non-production environments before deployment. For security guidance specific to your infrastructure, consult with your internal security team or a qualified vendor. Source: NVD (public-domain), retrieved 2026-08-13. Analysis generated by SEC.co (claude-haiku-4-5).