Skip to main content

ALTCHA CVE-2025-68113

MEDIUM
Misinterpretation of Input (CWE-115)
2025-12-16 security-advisories@github.com
6.5
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Solve one legitimate ALTCHA challenge
  2. Delivery
    Capture valid signed payload
  3. Exploit
    Splice/modify expiration value
  4. Execution
    Replay payload past intended lifetime
  5. Impact
    Bypass 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.

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

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

Alert me

AnalysisAIv1 – 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

composer altcha fix: 1.0.0
composer altcha-lib fix: 1.4.1
composer altcha-org/altcha fix: 1.3.1
composer github.com/altcha-org/altcha-lib-go fix: 1.0.0
composer org.altcha:altcha fix: 1.3.0
go altcha fix: 1.0.0
go altcha-lib fix: 1.4.1
go altcha-org/altcha fix: 1.3.1
go github.com/altcha-org/altcha-lib-go fix: 1.0.0
go org.altcha:altcha fix: 1.3.0
maven altcha fix: 1.0.0
maven altcha-lib fix: 1.4.1
maven altcha-org/altcha fix: 1.3.1
maven github.com/altcha-org/altcha-lib-go fix: 1.0.0
maven org.altcha:altcha fix: 1.3.0
npm altcha fix: 1.0.0
npm altcha-lib fix: 1.4.1
npm altcha-org/altcha fix: 1.3.1
npm github.com/altcha-org/altcha-lib-go fix: 1.0.0
npm org.altcha:altcha fix: 1.3.0
pypi altcha fix: 1.0.0
pypi altcha-lib fix: 1.4.1
pypi altcha-org/altcha fix: 1.3.1
pypi github-com/altcha-org/altcha-lib-go fix: 1.0.0
pypi org-altcha:altcha fix: 1.3.0
rubygems altcha fix: 1.0.0
rubygems altcha-lib fix: 1.4.1
rubygems altcha-org/altcha fix: 1.3.1
rubygems github.com/altcha-org/altcha-lib-go fix: 1.0.0
rubygems org.altcha:altcha fix: 1.3.0

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

Vendor (github) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
vuln.today AI 6.5 MEDIUM

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.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
Low

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

EPSS Score
0.5%
Top 62% exploitable
Prevalence
Low
niche privacy-focused open-source captcha, modest though growing adoption
Data Quality
4 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.5%
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
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

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

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy