-
Notifications
You must be signed in to change notification settings - Fork 498
[GHSA-mpmc-qchh-r9q8] Altcha Proof-of-Work obfuscation mode cryptanalytic break #6536
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Hi, I am the reporter of the issue.
The PoC clearly demonstrate a constant time solution of trivial computational effort regardless of what difficulty parameter you use, not the "intended threat model". It is your freedom as the vendor to dispute it, but it doesn't change any facts about this disclosure. |
|
Hi @ovx, @eternal-flame-AD is correct that submitting a dispute request to MITRE via https://cveform.mitre.org is an appropriate course of action. However, making a community contribution PR at the same time as submitting a community contribution is acceptable. In my guide "How to request a change to a CVE record," I listed a number of acceptable reference links to document public record of a dispute, including community contribution PRs. I read https://github.com/eternal-flame-AD/altcha-deobfs and accept the validity of the PoC. I do think there's one action that would be appropriate: Adding exploit maturity to lower the CVSSv4 severity. Since there is no evidence of GHSA-mpmc-qchh-r9q8 being used in attacks, we could go from https://www.first.org/cvss/calculator/4-0#CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N to https://www.first.org/cvss/calculator/4-0#CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P. Let me know what you both think. |
|
Hi, it looks like a great suggestion to me. At this point I stand by my conclusion that this is a vulnerability and the time to debate scope has passed. However, I am open to text and CVSS metric modifications on the condition that the vendor provide input constructively through on the record channels and make evidence based proposals, instead of ignoring outreach and attempting to dispute with no factual basis without the reporter in the loop. I get it optics are important and an "unpatched" advisory looks scary, but against I can't reiterate enough how important it is to engage constructively and collaboratively. |
|
Hi @shelbyc The original record has already been flagged as disputed: https://www.cve.org/CVERecord?id=CVE-2025-65849 I absolutely insist, that this not a vulnerability, it is intentionally designed to be this way. Please read the provided rationale and documentation. |
Designed in such a way that no matter how "difficult" you make it, there is a way to decode it instantly using 2 AES ops, while legitimate clients must submit to a long brute force loop? |
|
Again look, I am not trying to cherry pick you or make you look bad, but :
|
|
Sorry your original post is very long. I had a chance to read it in completion. This is my response. I mean if you just say "we use cryptographic tricks", nobody will unilaterally yell "vuln! this is a breach of security model", it's just an optimization trick. Instead you say it's:
It's like "not financial advice" when blatantly saying "buy stock X because I work at an investment firm." When I point out the advice is dangerous and I plan to publish it you ignore me. When I do publish it you go behind my back and claim it's invalid because the label clearly said "NFA", not sure I follow your logic. Again look, nothing personal. I tried to help you correct the issue via the channels you set up, you failed to make an input. I have no option except submit an entry to notify users that this feature provides a false sense of security. I am open to post hoc collaboration including modifying my part of the story to take your input into consideration, but it must be done transparently. This is all I have to say on this issue. The CVE entry is published, the PoC is legitimate and confirmed by other people, and customers are notified of a legitimate issue and I have reviewed your latest input, therefore my duty as a reporter is finished. Whether you like to see the problem or not is not my concern. |
|
My final statement; @shelbyc please conclude. I confirm the technical finding that the specific construction of the AES-GCM PoW verification allows for an algebraic bypass, reducing the computational effort from a linear-time search (O(N)) to a constant-time calculation (O(1)). This is a cryptographic break of the mechanism’s performance assumption in the technical sense. However, this analysis fundamentally misunderstands the security objective of the ALTCHA obfuscation feature, which is not cryptographic confidentiality, but imposing a high-cost integration barrier for mass automation. The PoW feature is designed to filter out simple, general-purpose scrapers and mass botnets. It is achieved by forcing an attacker to commit resources to one of two expensive strategies:
The constant-time algebraic solution, as demonstrated by the PoC, is not a viable shortcut for a simple bot. It is the mandatory minimum barrier for any automation attempt. The algebraic bypass forces automators into a specific, high-effort development path:
The mechanism's success is measured by the resources an attacker must commit to bypass it. The choice of AES-GCM was strategic because its native availability in browsers imposes zero overhead on legitimate users. Its low-level algebraic structure imposes a high integration cost on automated adversaries. ConclusionThe Proof-of-Work (PoW) mechanism successfully transitions the attack cost from a computational burden (which the O(1) algebraic bypass invalidated) to a development and integration burden (which remains high). I conclude that for its intended non-confidential, deterrence-based purpose, the mechanism remains an effective and strategically strong filter against mass automation. The author's findings conclude that the AES-GCM authentication mechanism is mathematically structured, allowing for non-iterative inversion of the input when other factors are known. This fact permits the Proof-of-Concept (PoC) to demonstrate trivial computational effort. However, this technical fact alone does not constitute an exploitable security flaw in the verification mechanism because:
Additionally, I recognize that a path exists to achieve a similar feature using a non-algebraic solution like PBKDF2 as the PoW mechanism, but this requires a complete rework of the feature. This is something that may be introduced later, after validating the feasibility and performance impact of such a change. Since the report identifies a cryptographic limitation rather than a critical, actionable vulnerability, and because the consequence of the flaw is manageable through the Integration Cost barrier, I assert that the best practice is disclosure and risk acceptance. I will implement the following documentation change to ensure full transparency for developers managing their risk appetite, and recommend the report be withdrawn as unactionable under the context of this product's threat model: |
|
@ovx @eternal-flame-AD I discussed this thread with my team and we agreed to keep the advisory, albeit with a CVSS of We based this decision on the following documentation claim:
Since the documentation has a claim of taking O(n) time, the CVE is valid, albeit not as serious as CISA-ADP claims in their severity score. Keeping the advisory but using a CVSS that reflects the limited impact and lack of real-world exploitation reflects the situation most accurately. |
|
Hello @shelbyc , I understand your decision, but can you please suggest a possible fix for this issue so that we can deliver a patch? The author does not seem to provide one. |
Updates
Comments
Requesting withdrawal.
The reported issue misclassifies ALTCHA’s obfuscation mode as a vulnerability. ALTCHA’s documentation explicitly states that obfuscation uses a proof-of-work + symmetric AES mechanism not for strong cryptographic secrecy but only to raise the bar against automated scraping by bots.
Because altcha-obfuscation is designed to allow de-obfuscation by capable clients (browsers or users), the fact that data can be recovered does not constitute a flaw or security vulnerability — it is intended and expected behavior. Marking this as a vulnerability is misleading and should be withdrawn.
Context — how ALTCHA’s obfuscation works
In other words: obfuscation in ALTCHA is meant to discourage automated scraping / bots, not guarantee cryptographic secrecy or resistance to determined attackers. Being able to decrypt the obfuscated data (with enough compute/time) is considered acceptable by design.
Why this means the advisory is incorrect
Based on the above: