CVE-2026-82759
lowpriority · track · 0EPSS 0.001 · 3 %ileUSEPSS · scored 2026-10-27
Use of a One-Way Hash with a Predictable Salt vulnerability in team-alembic AshAuthentication allows readers of the audit store to recover the client IP addresses that the audit log add-on's :hash privacy mode is meant to pseudonymise. AshAuthentication.AddOn.AuditLog.IpPrivacy.hash_ip/1 computes a single unkeyed :crypto.hash(:sha256, salt <> ip) and truncates the result to 16 hexadecimal characters. The salt is read from the :audit_log_ip_salt or :secret application config keys, and falls back to the constant "default-salt-change-in-production" published in the library source when neither is set, with nothing warning that the default is in use. The IPv4 space is only 2^32 values and SHA-256 is fast, so the whole hash table is precomputable and every stored value maps back to its source address. Truncating to 16 characters does not help, and even a configured salt leaves the hash cheap enough to enumerate once it leaks. This issue affects ash_authentication: from 4.12.0 before 4.15.0 and from 5.0.0-rc.0 before 5.0.0-rc.14.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (2)
Products and version ranges known to be affected.
advisories (1)
Vendor and ecosystem advisories describing this.
- EEF-CVE-2026-82759Reversible IP address pseudonymisation in AshAuthentication audit log hash mode2026-09-17vendor · osvUS
## Summary Use of a One-Way Hash with a Predictable Salt vulnerability in team-alembic AshAuthentication allows readers of the audit store to recover the client IP addresses that the audit log add-on's `:hash` privacy mode is meant to pseudonymise. `AshAuthentication.AddOn.AuditLog.IpPrivacy.hash_ip/1` computes a single unkeyed `:crypto.hash(:sha256, salt <> ip)` and truncates the result to 16 hexadecimal characters. The salt is read from the `:audit_log_ip_salt` or `:secret` application config keys, and falls back to the constant `"default-salt-change-in-production"` published in the library source when neither is set, with nothing warning that the default is in use. The IPv4 space is only 2^32 values and SHA-256 is fast, so the whole hash table is precomputable and every stored value maps back to its source address. Truncating to 16 characters does not help, and even a configured salt leaves the hash cheap enough to enumerate once it leaks. This issue affects ash_authentication: from 4.12.0 before 4.15.0 and from 5.0.0-rc.0 before 5.0.0-rc.14. ## Configurations Only applications that enable the `audit_log` add-on and set its `ip_privacy` mode to `:hash` store the affected value. Other modes (`:none`, `:truncate`, `:exclude`) do not reach `hash_ip/1`. The complete break additionally requires the default salt, that is neither `:audit_log_ip_salt` nor `:secret` configured under the `:ash_authentication` application. This is the out-of-the-box state: no warning or error is raised when the hardcoded salt is in use.
also known as (1)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (6) nvd
External citations — patches, advisories, analysis.
- https://cna.erlef.org/cves/CVE-2026-82759.html
- https://github.com/team-alembic/ash_authentication/commit/255cfc9c0e511b7e0de39f8b3d676ae994fae06c
- https://github.com/team-alembic/ash_authentication/commit/c3a6d5fe0d4fd383ea81b0402db0a96638479478
- https://github.com/team-alembic/ash_authentication/commit/d8a9c4b6bde828fdc8346198d5e4f588b5937541
- https://github.com/team-alembic/ash_authentication/security/advisories/GHSA-cgqj-pcpq-xhfm
- https://osv.dev/vulnerability/EEF-CVE-2026-82759
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan