PlatformPlatform architectureProduct tourProduct graphRisk intelligenceContinuous governanceEvidence & auditDeploymentIntegrationsExecutive view
BOM SuiteSBOMCBOMQBOMAIBOMHBOMBOM Governance
SolutionsSecurityComplianceSupply chain riskQuantum readinessAI governanceDigital trust
ComplianceCERT-InRBISEBI / CSCRFMeitYNISTEU CRAEU AI ActCERT-In SBOM guide
IndustriesBanking & Financial ServicesGovernment & Public SectorDefence & Critical InfrastructureHealthcareIndian enterprises
ResourcesResource centreSBOM resourcesCBOM resourcesQBOM resourcesAIBOM resourcesHBOM resourcesProgramme & regulationBlogVulnerability disclosuresResearch
CompanyAboutSecurity & trustContact
Request a DemoTalk to an expert

Resources · Research · 01

Automated Vulnerability Discovery and the Weak-PRNG Risk Class

A defensive analysis of CVE-2026-61500 (Rejetto HFS), discovered with Anthropic's Mythos model under Project Glasswing.

CVSS 4.09.3 CriticalCWECWE-338RuntimeNode.js / V8DiscoveryAnthropic MythosStatusPatched 3.2.1

Published 2026-10-07 · 9 min read · Defensive analysis, no exploit code · Independent presentation by IntelliXBOM

The attack chain, and where to break it

A conceptual overview of how a predictable-randomness flaw becomes administrative code execution, with the defensive control that breaks each link. Select a stage. No exploit detail is shown; for the technical write-up see Horizon3.ai (opens in a new tab).

1

Unauthenticated exposure

What happens

An HFS 3.x instance is reachable on the network without authentication, exposing endpoints to anonymous clients.

Defensive control

Keep file servers off the public internet where possible; put them behind a VPN or reverse proxy with authentication, and restrict management interfaces by IP.

01

Overview & abstract

CVSS 4.0 base score9.3Critical (CVSS 3.1: 9.8) [NVD / NIST]
Weakness classCWE-338Cryptographically weak PRNG [NVD / NIST]
Privileges requiredNoneUnauthenticated, over the network [NVD / NIST]
Affected versions3.0.0 to 3.2.0Fixed in HFS 3.2.1 [NVD / NIST]
Patch available before exploitation81 daysFix shipped 13 Jul, exploited 2 Oct [Rejetto]
Disclosure to exploitation~2 daysWrite-up 30 Sep, in the wild 2 Oct [VulnCheck]

Executive overview

In 2026 a new class of security finding became routine: vulnerabilities discovered not by a human researcher reading code, but by large language models reasoning over it at scale. CVE-2026-61500, a critical flaw in the widely used Rejetto HTTP File Server (HFS), is a clear example. It was found with Anthropic's Mythos model as part of Project Glasswing, Anthropic's programme for finding and disclosing flaws in critical open-source software [Anthropic], and reported by researchers at Horizon3.ai [Horizon3.ai].

The flaw itself is an old and well-understood mistake in a modern runtime: security-sensitive values were derived from a non-cryptographic random number generator. Because that randomness is predictable, an unauthenticated attacker can determine the key used to sign session cookies, forge an administrator session, and from there reach remote code execution on the host [SecurityWeek]. It is catalogued as CWE-338, Use of a Cryptographically Weak PRNG, and scored CVSS 4.0 9.3 (Critical) [NVD / NIST].

This analysis is written for defenders and software-supply-chain owners. It explains what the vulnerability class is, why AI-assisted discovery changes the defensive calendar, and how to find and fix the same pattern in your own estate. It deliberately contains no exploit code, recovery mathematics or step-by-step attack procedure, the technical disclosure is linked for those who need it [Horizon3.ai].

Why this matters beyond one product

Two shifts make CVE-2026-61500 worth studying as a pattern rather than a one-off. First, the time from disclosure to exploitation collapsed to roughly a day: a public proof-of-concept and in-the-wild activity followed the write-up almost immediately [VulnCheck]. Second, AI-assisted programmes can surface deep, math-heavy bugs in dependencies that have been shipping for years. For anyone maintaining a software bill of materials, that means the set of "quietly fine" components can change quickly, and the window to patch is shorter than the old mental model assumes.

02

The weak-PRNG class

The weak-PRNG risk class (CWE-338)

Every programming runtime ships a fast, general-purpose random number generator for everyday work: shuffling a list, jittering a retry, picking a sample. In the V8 engine that powers Node.js, that generator is Math.random(), implemented with an algorithm called xorshift128+ [SecurityWeek]. It is excellent at being fast and statistically uniform. It is not designed to be unpredictable to an adversary, and that is the whole point of the risk class.

CWE-338 describes exactly this: using a cryptographically weak PRNG where security depends on the output being unguessable [NVD / NIST]. The danger is not that the numbers "look random", they do. The danger is that a general-purpose PRNG is built to be reproducible and analysable, which is the opposite of what a secret needs to be. When such output is used, directly or indirectly, to produce session tokens, signing keys, password-reset tokens, API keys or nonces, the security of the whole system rests on a value an attacker can anticipate.

Where it went wrong in HFS

In CVE-2026-61500, the signing material behind HFS's session cookies traced back to Math.random() rather than a cryptographically secure source [SecurityWeek]. Once signing material is predictable, the attacker does not need a password: they can produce a cookie the server will accept as a legitimate administrator, and administrative access to HFS leads on to code execution [Horizon3.ai]. The chain is shown in the attack-chain diagram above, at a conceptual level, with the defensive control that breaks each link.

General-purpose PRNG vs CSPRNG

Why the same output that is perfect for shuffling a list is unsafe for a secret.

General-purpose PRNGMath.random() / xorshift128+
  • Fast and statistically uniform
  • Reproducible and analysable by design
  • Output is predictable to an adversary
  • Unsafe for tokens, keys, nonces (CWE-338)
CSPRNGcrypto.randomBytes() / Web Crypto
  • Seeded from OS entropy
  • Designed to be unpredictable
  • Backtracking-resistant
  • Correct choice for all secret material

Find and fix the pattern across ecosystems

The risky call and its cryptographically secure replacement, by language.

JavaScript / Node (V8)
RiskyMath.random()Usecrypto.randomBytes() · crypto.getRandomValues()
Java
Riskyjava.util.Random · Math.random()Usejava.security.SecureRandom
Python
Riskyrandom moduleUsesecrets module · os.urandom()
PHP
Riskyrand() · mt_rand()Userandom_bytes() · random_int()
C / C++
Riskyrand()Usegetrandom(2) · arc4random_buf()
Go
Riskymath/randUsecrypto/rand

How to find this pattern in your own code and dependencies

  • Grep for the smell. In JavaScript/TypeScript, searches for Math.random() near words like token, secret, key, session, nonce, password or reset are high-value. The equivalents in other ecosystems are java.util.Random, C's rand(), Python's random module and PHP's rand()/mt_rand().
  • Prefer the CSPRNG. The fix is to generate secrets from a cryptographically secure generator: crypto.randomBytes() or the Web Crypto API in Node, secrets in Python, java.security.SecureRandom in Java, random_bytes() in PHP.
  • Use static analysis. Most SAST tools and linters have a rule for insecure randomness (CWE-338); turn it on and treat it as a blocker in CI, not a warning.
  • Check your dependencies, not just your code. The weak value is often several layers down in a library. This is where a bill of materials earns its keep, see the remediation view.

This section describes a general weakness class and how to remediate it. It is not a guide to attacking any specific system.

03

Severity breakdown (CVSS 4.0)

How the 9.3 Critical score decomposes. The flaw is reachable over the network with no privileges, no user interaction and low complexity, and it fully compromises the confidentiality, integrity and availability of the affected system [NVD / NIST].
CVSS 4.0 base9.3 / 10
0LowMediumHighCritical10

CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N [NVD / NIST]

Exploitability

AVAttack VectorNetwork
ACAttack ComplexityLow
ATAttack RequirementsNone
PRPrivileges RequiredNone
UIUser InteractionNone

Impact on the system

VCConfidentialityHigh
VIIntegrityHigh
VAAvailabilityHigh

Subsequent systems

SCConfidentialityNone
SIIntegrityNone
SAAvailabilityNone
04

AI-assisted discovery

AI-assisted discovery and what it changes for defenders

CVE-2026-61500 was surfaced by Anthropic's Mythos model under Project Glasswing, a programme Anthropic launched in April 2026 to apply the model to critical open-source software, reportedly finding a large number of flaws across widely used projects [Anthropic]. Horizon3.ai's researchers took the finding through validation and coordinated disclosure [Horizon3.ai]. Reporting on the case highlighted that the discovery leaned on the kind of mathematical reasoning that makes weak-randomness bugs hard for humans to spot by eye [The Register].

For a defender, the model that found the bug matters less than the operational shift it represents:

Latent bugs surface faster

Flaws that sat unnoticed in mature dependencies for years can now be found in bulk. “Old and widely used, so probably fine” is a weaker assumption.

The patch window shrinks

Here, public PoC and in-the-wild activity followed the write-up within about a day. SLAs tuned to a slower era become the gap attackers use.

Coordinated disclosure still works

The vendor fix shipped months before the write-up. Consuming advisories and patching continuously captures that lead time.

The same class of programme that found this bug, AI reasoning over code at scale, is also what makes a continuously maintained, queryable inventory of your software components valuable: when the next finding lands, the question "where do we run this?" needs an answer in minutes, not weeks.

05

Timeline & exploitation

Dates are drawn from the cited sources. The notable feature is the compression at the end: patch availability preceded the public write-up by months, but exploitation followed it within roughly a day.
Exposure window: a fix was available for 81 days before exploitation began. The risk for most victims was patch lag, not attacker speed. Disclosure (30 Sep) and the public PoC (1 Oct) fall inside the final days of the green band, see the detailed timeline below.
Glasswing launchedPatch + CVE publishedExploited in the wild
Fix available (HFS 3.2.1)Window before fix shipped
  1. Project Glasswing launched

    Anthropic launches Project Glasswing, applying the Mythos Preview model to find flaws in critical open-source software. [Anthropic]

  2. Patch released, HFS 3.2.1

    Rejetto publishes HFS 3.2.1, which remediates the issue. CVE-2026-61500 is published the same day. [Rejetto]

  3. Technical disclosure

    Horizon3.ai publishes the technical write-up of the flaw, crediting discovery to the Mythos model. [Horizon3.ai]

  4. Public proof-of-concept

    A public proof-of-concept appears, lowering the barrier to exploitation. [The Hacker News]

  5. Active exploitation

    VulnCheck reports in-the-wild activity: reconnaissance from China Telecom IP space against canary hosts in the US and Japan. [VulnCheck]

The defensive takeaway

A fix existed from 13 July 2026, yet exploitation began around 1 to 2 October 2026 [Rejetto] [VulnCheck]. The exposure window for most victims was created not by the attacker's speed but by the patch lag between the fix shipping and it being deployed. Continuous patching and a current inventory are what close that window.

06

Remediation & SBOM

Remediation and defensive checklist

If you run Rejetto HFS

  • Upgrade to HFS 3.2.1 or later [Rejetto]. This is the vendor fix and the primary action.
  • Treat any 3.0.0 to 3.2.0 instance exposed before upgrade as suspect. Rotate credentials and secrets, review admin activity and configuration changes, and check for unexpected scheduled tasks or outbound connections.
  • Reduce exposure. Put the server behind authentication and, where possible, off the public internet; restrict the admin interface by source IP.
  • Watch for the behaviour, not just the version. Alert on administrator sessions that never performed a login, and on admin access from new networks or geographies, the reported activity came from China Telecom IP space against US and Japan targets [VulnCheck].

For the weak-PRNG class generally

  • Enable and enforce the insecure-randomness (CWE-338) rule in your SAST/linters.
  • Audit your own code for general-purpose PRNGs used to generate secrets, and replace them with a CSPRNG.
  • Prefer well-reviewed framework primitives for session management over hand-rolled signing.

The SBOM and governance angle

This is where continuous bill-of-materials governance pays off, and why IntelliXBOM is publishing the analysis. When a finding like CVE-2026-61500 lands:

  • A current SBOM answers "do we run this component, and at what version?" across the estate in minutes, which is the difference between patching inside the one-day window and missing it.
  • Correlating the SBOM with vulnerability feeds turns a new CVE into a specific, ranked worklist of affected systems rather than an all-hands scramble.
  • Recording the upgrade as timestamped evidence demonstrates, to auditors and regulators, that the exposure window was closed and when.

IntelliXBOM helps organisations generate and validate SBOMs, correlate components with vulnerabilities and known-exploited lists, and produce that evidence. It does not certify compliance; it maps inventory to the controls and frameworks you report against.

This summarises public guidance and is not legal advice. Always follow the vendor advisory and your own change-management process.

Know where a new CVE lands, in minutes.Map your components against live vulnerability and known-exploited feeds with IntelliXBOM.
Request a Demo
07

Citations & sources

Every factual claim on this page is drawn from the sources below. Filter by tag or search; each links to the original.