Skip to content

Fix CVE-2025-69277.#6523

Closed
loganaden wants to merge 1 commit intoalgorand:masterfrom
cyberstormdotmu:master
Closed

Fix CVE-2025-69277.#6523
loganaden wants to merge 1 commit intoalgorand:masterfrom
cyberstormdotmu:master

Conversation

@loganaden
Copy link
Copy Markdown

Summary

libsodium CVE CVE-2025-69277 is about missing checks for ed25519 digital signature.

Backported from libsodium upstream.

Backported from libsodium upstream.

Signed-off-by: Loganaden Velvindron <logan@cyberstorm.mu>
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Jan 11, 2026

CLA assistant check
All committers have signed the CLA.

@joe-p
Copy link
Copy Markdown
Contributor

joe-p commented Jan 11, 2026

None of the high-level APIs are affected and go-algorand doesn't seem to use crypto_core_ed25519_is_valid_point directly, so I don't think this is a necessary change for go-algorand.

https://00f.net/2025/12/30/libsodium-vulnerability/

@loganaden
Copy link
Copy Markdown
Author

@joe-p Got it. What about the downstream projects who forked from go-algorand ?

@joe-p
Copy link
Copy Markdown
Contributor

joe-p commented Jan 11, 2026

crypto_core_ed25519_is_valid_point isn't even exposed anywhere in go-algorand, so if a fork is using the same vendored libsodium AND using crypto_core_ed25519_is_valid_point in newly written code then they would need to update

@cce
Copy link
Copy Markdown
Contributor

cce commented Jan 12, 2026

In fact in #3031 in 2022, we added ge25519_is_neutral_vartime and ge25519_is_canonical_vartime as part of hardening the ed25519 validation criteria beyond libsodium's rules and supporting batch verification; these provide similar protection against edge cases like the libsodium bug (though we've never relied on the low-level method crypto_core_ed25519_is_valid_point from this CVE). Additionally, Algorand team members are credited in Taming the many EdDSAs for helping spot an ambiguity similar to this CVE's bug in that paper's is_canonical_y check implementation.

As explained in the "Taming the many EdDSAs" paper and It's 255:19AM. Do you know what your validation criteria are? different ed25519 implementations may have different and changing validation rules — for example, libsodium changed its ed25519 validation criteria between versions 1.0.15 and 1.0.16 — so when #3031 and #6440 were developed we were already aware of the need for having consistent and strict validation criteria for signature validation.

@gmalouf gmalouf closed this Jan 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants