ALTCHA CVE-2025-68113
MEDIUMAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSolve one legitimate ALTCHA challenge
-
DeliveryCapture valid signed payload
-
ExploitSplice/modify expiration value
-
ExecutionReplay payload past intended lifetime
-
ImpactBypass rate limiting and bot mitigation
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output interpretation safety
|
| Exploitation Conditions | Exploitation requires the attacker to first obtain a single legitimately solved ALTCHA proof-of-work payload (its valid HMAC signature and salt), then resubmit it with an altered 'expires' value exploiting the ambiguous binding between challenge parameters and the nonce. The critical enabling condition is a server-side deployment that validates the signed payload's embedded expiration without independently tracking already-consumed challenges or enforcing its own replay/nonce state - the vendor explicitly conditions impact on 'server-side replay handling and deployment assumptions.' Limiting factors: impact is confined to abuse-prevention mechanisms (rate limiting, bot mitigation) with no effect on data confidentiality or integrity; deployments that enforce one-time challenge consumption server-side, or that have upgraded to the patched library versions or applied the backward-compatible salt-delimiter mitigation, are not exploitable. |
| Impact | This is a genuine but moderate, narrowly-scoped weakness rather than a top-tier emergency. The CVSS 3.1 vector (6.5, AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L) is internally consistent with the description: the attack is remote and low-complexity (merely editing the expiration value in a submitted payload) and requires no privileges or user interaction, but its impact is deliberately capped at Low integrity and Low availability with zero confidentiality - matching the CWE-115 (misinterpretation of input) root cause and the vendor's explicit statement that data confidentiality and integrity are not directly affected. The exploitation signals are mild and mutually reinforcing: EPSS is 0.46% (38th percentile), there is no CISA KEV listing, and no public weaponized exploit was identified - only vendor-authored regression tests demonstrating salt-splicing exist in the patch commits, which validate the fix rather than constitute a drop-in attack tool. A key caveat: real-world exploitability is conditional on 'server-side replay handling and deployment assumptions,' so a deployment that already tracks consumed challenges or enforces independent nonce/replay state may be unaffected despite the library flaw. Net: prioritize patching for anyone relying on ALTCHA for rate-limiting or bot mitigation at scale, but this does not warrant out-of-band emergency response. |
| Exploit ScenarioDerived | An attacker legitimately solves one ALTCHA proof-of-work challenge, then captures and resubmits that valid payload while editing the expiration (expires) parameter, because the HMAC signature does not unambiguously bind the challenge parameters to the nonce. On servers that trust the signed payload's embedded expiry without independent replay tracking, the single solved challenge can be reused far beyond its intended lifetime to defeat rate limiting and bot mitigation. No public exploit tool exists, but vendor regression tests in the patch commits concretely demonstrate the salt-splicing technique. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Challenge payload splicing in the ALTCHA proof-of-work bot-protection libraries lets remote, unauthenticated attackers (CVSS:3.1/AV:N/AC:L/PR:N/UI:N) reuse a previously solved challenge past its intended expiration by reinterpreting a valid HMAC-signed payload with an altered 'expires' parameter. Only deployments that trust the signed payload's embedded expiration without independently tracking consumed challenges are affected; the vendor explicitly conditions impact on 'server-side replay handling and deployment assumptions.' Impact is confined to abuse-prevention controls such as rate limiting and bot mitigation with no effect on data confidentiality or integrity (C:N/I:L/A:L), CISA KEV does not list this issue, no public exploit code has been identified at time of analysis, and the EPSS score of 0.46% (38th percentile) indicates low predicted exploitation activity.
RemediationAI
Upgrade to the vendor-released patched versions for each implementation: altcha Go 1.0.0, altcha Rubygem 1.0.0, altcha pip 1.0.0, altcha Erlang 1.0.0, altcha-lib npm 1.4.1, altcha-org/altcha Composer 1.3.1, and org.altcha:altcha Maven 1.3.0 - each corresponding to a commit adding an explicit '&' delimiter to the salt before HMAC computation (see the linked commits and release tag 1.4.1 for altcha-lib). Where immediate upgrading is not possible, the vendor-endorsed backward-compatible mitigation is to append a delimiter to the end of the salt value prior to HMAC computation (for example, '<salt>?expires=<time>&'), which removes the ambiguity between parameters and the nonce while remaining interoperable because the delimiter is treated as a standard URL parameter separator; the trade-off is that deployed clients and servers must apply the same canonicalization consistently or verification will fail. Because exploitability hinges on server-side replay handling, operators should independently track and consume each challenge nonce once (one-time challenge enforcement) so that even a spliced payload with a modified expiration cannot be replayed - this adds server-side state or cache/TTL bookkeeping but fully neutralizes the replay path. Additionally, reject or ignore client-supplied expiration values that extend beyond the server-issued lifetime, and treat inline rate limiting or IP/session throttling as a compensating layer rather than the primary control. No vendor patch gap exists here; the primary risk is unpatched downstream deployments. Full details and the coordinated advisory are at https://github.com/altcha-org/altcha-lib/security/advisories/GHSA-6gvq-jcmp-8959.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 7 packages in composer, go, maven and 3 more
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ALTCHA is a privacy-preserving proof-of-work CAPTCHA in which the server issues a challenge (salt, algorithm, challenge hash, optional expires and custom params) and signs it with an HMAC using a server-side key; the client returns the solution, and the server re-computes the HMAC over the concatenated challenge parameters to validate authenticity. CWE-115 (Misinterpretation of Input) is the root cause: because the canonical string passed to the HMAC was built without an explicit delimiter between the salt (nonce) and the trailing query-style parameters, the boundary between them was ambiguous. An attacker holding one legitimately solved payload can shift the parameter boundary and present a modified expiration value that still produces a matching signature, enabling splicing and replay. The fix enforces explicit semantic separation by appending an '&' delimiter to the salt before HMAC computation, which normalizes ambiguity while remaining backward compatible because '&' is a standard URL parameter separator. The affected implementations are altcha-lib-go, altcha-lib-rb, altcha-lib (Python), altcha-lib-ex (Erlang), altcha-lib (npm/JavaScript), altcha-lib-php, and altcha-lib-java, as evidenced by parallel commits adding the delimiter in each repository. Note that the NVD-supplied tags ('Information Disclosure', 'Node.js') do not align with the assessed vector or the vendor description, which states no direct confidentiality or integrity impact; the observable effect is weakened anti-automation enforcement, consistent with the AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L assessment.
Know when Node.js 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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
Remote, low-complexity payload tampering needing no auth or interaction (AV:N/AC:L/PR:N/UI:N); no confidentiality impact (C:N), with Low integrity/availability impact limited to bypassing abuse-prevention controls.
Primary rating from Vendor (github).
CVSS VectorVendor: github
DescriptionCVE.org
ALTCHA is privacy-first software for captcha and bot protection. A cryptographic semantic binding flaw in ALTCHA libraries allows challenge payload splicing, which may enable replay attacks. The HMAC signature does not unambiguously bind challenge parameters to the nonce, allowing an attacker to reinterpret a valid proof-of-work submission with a modified expiration value. This may allow previously solved challenges to be reused beyond their intended lifetime, depending on server-side replay handling and deployment assumptions. The vulnerability primarily impacts abuse-prevention mechanisms such as rate limiting and bot mitigation. It does not directly affect data confidentiality or integrity. This issue has been addressed by enforcing explicit semantic separation between challenge parameters and the nonce during HMAC computation. Users are advised to upgrade to patched versions, which include version 1.0.0 of the altcha Golang package, version 1.0.0 of the altcha Rubygem, version 1.0.0 of the altcha pip package, version 1.0.0 of the altcha Erlang package, version 1.4.1 of the altcha-lib npm package, version 1.3.1 of the altcha-org/altcha Composer package, and version 1.3.0 of the org.altcha:altcha Maven package. As a mitigation, implementations may append a delimiter to the end of the salt value prior to HMAC computation (for example, <salt>?expires=<time>&). This prevents ambiguity between parameters and the nonce and is backward-compatible with existing implementations, as the delimiter is treated as a standard URL parameter separator.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation
A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could
FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc
An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi
Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin
The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic
NVD
CVE.org
EPSS
GitHub
Exploit-DB