{"document":{"category":"csaf_vex","csaf_version":"2.0","title":"CVE-2026-48860: Distribution-over-TLS LAN allowlist silently bypassed due to sockname/peername confusion in inet_tls_dist","publisher":{"category":"vendor","name":"HarborGuard Database","namespace":"https://database.harborguard.co"},"tracking":{"id":"CVE-2026-48860","status":"final","version":"1","initial_release_date":"2026-06-10T14:35:49.987Z","current_release_date":"2026-06-11T04:45:42.753Z","revision_history":[{"date":"2026-06-10T14:35:49.987Z","number":"1","summary":"Initial machine-readable export from HarborGuard."}]},"distribution":{"tlp":{"label":"WHITE"},"text":"Public CVE data; freely redistributable."},"notes":[{"category":"description","text":"Reliance on IP Address for Authentication vulnerability in Erlang/OTP ssl (inet_tls_dist module) allows unauthenticated bypass of the distribution-over-TLS LAN allowlist.\n\nThe inet_tls_dist:check_ip/1 function, which enforces a LAN allowlist for Erlang distribution over TLS, calls inet:sockname/1 instead of inet:peername/1 to obtain the peer's IP address. Because inet:sockname/1 returns the local socket address, both the local IP and the supposed peer IP resolve to the same value, causing the subnet mask comparison to always succeed regardless of the actual remote address. Any holder of a CA-signed TLS certificate can therefore bypass the LAN restriction and gain full Erlang distribution access to the node, including rpc:call/4 and code:load_binary/3.\n\nThis vulnerability is associated with program file lib/ssl/src/inet_tls_dist.erl.\n\nThis issue affects OTP from OTP 26.0 before 29.0.2, 28.5.0.2 and 27.3.4.13 corresponding to ssl from 11.0 before 11.7.2, 11.6.0.2 and 11.2.12.9.","title":"CVE description"}],"references":[{"category":"self","summary":"CVE-2026-48860 on HarborGuard Database","url":"https://database.harborguard.co/cve/CVE-2026-48860"},{"category":"external","summary":"CVE Record","url":"https://www.cve.org/CVERecord?id=CVE-2026-48860"},{"category":"external","summary":"github.com","url":"https://github.com/erlang/otp/security/advisories/GHSA-gp7x-mfv6-52cv"},{"category":"external","summary":"cna.erlef.org","url":"https://cna.erlef.org/cves/CVE-2026-48860.html"},{"category":"external","summary":"osv.dev","url":"https://osv.dev/vulnerability/EEF-CVE-2026-48860"},{"category":"external","summary":"erlang.org","url":"https://www.erlang.org/doc/system/versions.html#order-of-versions"},{"category":"external","summary":"github.com","url":"https://github.com/erlang/otp/commit/0209a6df65d605552b378273027b3968b35f26b4"}]},"product_tree":{"branches":[{"category":"vendor","name":"Erlang","branches":[{"category":"product_name","name":"OTP","branches":[{"category":"product_version_range","name":">=11.0 <*","product":{"name":"Erlang OTP >=11.0 <*","product_id":"CSAFPID-1","product_identification_helper":{"cpe":"cpe:2.3:a:erlang:otp:*:*:*:*:*:*:*:*"}}}]}]},{"category":"vendor","name":"Erlang","branches":[{"category":"product_name","name":"OTP","branches":[{"category":"product_version_range","name":">=26.0 <*","product":{"name":"Erlang OTP >=26.0 <*","product_id":"CSAFPID-2","product_identification_helper":{"cpe":"cpe:2.3:a:erlang:otp:*:*:*:*:*:*:*:*"}}},{"category":"product_version_range","name":">=7a08c5507862a7011568506d0c17b1fdef30bee4 <0209a6df65d605552b378273027b3968b35f26b4","product":{"name":"Erlang OTP >=7a08c5507862a7011568506d0c17b1fdef30bee4 <0209a6df65d605552b378273027b3968b35f26b4","product_id":"CSAFPID-3","product_identification_helper":{"cpe":"cpe:2.3:a:erlang:otp:*:*:*:*:*:*:*:*"}}}]}]}]},"vulnerabilities":[{"cve":"CVE-2026-48860","title":"Distribution-over-TLS LAN allowlist silently bypassed due to sockname/peername confusion in inet_tls_dist","notes":[{"category":"description","text":"Reliance on IP Address for Authentication vulnerability in Erlang/OTP ssl (inet_tls_dist module) allows unauthenticated bypass of the distribution-over-TLS LAN allowlist.\n\nThe inet_tls_dist:check_ip/1 function, which enforces a LAN allowlist for Erlang distribution over TLS, calls inet:sockname/1 instead of inet:peername/1 to obtain the peer's IP address. Because inet:sockname/1 returns the local socket address, both the local IP and the supposed peer IP resolve to the same value, causing the subnet mask comparison to always succeed regardless of the actual remote address. Any holder of a CA-signed TLS certificate can therefore bypass the LAN restriction and gain full Erlang distribution access to the node, including rpc:call/4 and code:load_binary/3.\n\nThis vulnerability is associated with program file lib/ssl/src/inet_tls_dist.erl.\n\nThis issue affects OTP from OTP 26.0 before 29.0.2, 28.5.0.2 and 27.3.4.13 corresponding to ssl from 11.0 before 11.7.2, 11.6.0.2 and 11.2.12.9.","title":"CVE description"}],"product_status":{"known_affected":["CSAFPID-1","CSAFPID-2","CSAFPID-3"]},"scores":[{"cvss_v4":{"version":"4.0","vectorString":"CVSS:4.0/AV:A/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","baseScore":7.5,"baseSeverity":"HIGH"},"products":["CSAFPID-1","CSAFPID-2","CSAFPID-3"]}],"remediations":[{"category":"vendor_fix","details":"Update to a fixed version: *, 0209a6df65d605552b378273027b3968b35f26b4.","product_ids":["CSAFPID-1","CSAFPID-2","CSAFPID-3"],"url":"https://github.com/erlang/otp/commit/0209a6df65d605552b378273027b3968b35f26b4"}]}]}