Skip to content

[pull] master from erlang:master#830

Merged
pull[bot] merged 14 commits into
garazdawi:masterfrom
erlang:master
Jul 13, 2026
Merged

[pull] master from erlang:master#830
pull[bot] merged 14 commits into
garazdawi:masterfrom
erlang:master

Conversation

@pull

@pull pull Bot commented Jul 13, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

garazdawi and others added 14 commits June 29, 2026 14:40
Tighten e/f validation from inclusive [1, p-1] to strict (1 < e < p-1)
on all plain-DH and GEX paths. Add missing 1 < K < p-1 check on the
plain-DH client path (handle_kexdh_reply), matching what the GEX code
already enforced.

The RFCs (4253 §8, 4419 §3) only require inclusive bounds for e/f, but
OpenSSH and Go both enforce strict bounds. The K check on plain DH is
defense-in-depth — with safe primes and strict e/f, K ∈ {1, p-1} cannot
occur, but the check guards against crypto backend bugs at zero cost.

No interop risk: no legitimate peer sends e ∈ {0, 1, p-1, p}.
The "duplicated ssh_msg_kexdh_init" sub-flow expected disconnect
immediately after kexdh_reply, but the server sends newkeys as part
of normal first-kexdh_init processing before it detects the duplicate
in {new_keys,server,init} state. On debug/lock-counting builds the
timing makes newkeys (or tcp_closed) arrive before disconnect.

Accept any of newkeys, disconnect, or tcp_closed after kexdh_reply.
The actual violation assertion is already verified through
event_logged(server, Events, "KEX strict violation") in
kex_strict_helper/3.
The interrupted_send test calls ssh:close/1 after the listener
collects its expected echo data, while the sender is still pushing
the remaining 6 MB. The connection teardown can race with the
ongoing send, causing {error, closed} instead of ok.

Accept both outcomes since the test's purpose is to verify the
listener received correct data, not that the full send completes.
* raimo/test-cuddle:
  Relax test for Knot nameserver start to accomodate new versions
  Fix obvious misspelling bug
  Figure out why subsequent suites sometimes fail
* maint:
  Relax test for Knot nameserver start to accomodate new versions
  Fix obvious misspelling bug
  Figure out why subsequent suites sometimes fail
* kuba/ssh/kpef_limits/OTP-20229:
  ssh: tighten DH bounds to 1<e<p-1 and add K check
…' into maint

* u3s_otp/kuba/ssh/fix_flaky_ssh_protocol:
  fixup: Use record syntax
  ssh: Fix kex_strict_violation test race on debug builds
* kuba/ssh/fix_flaky_ssh_connection_test:
  ssh test: Fix flaky interrupted_send race condition
@pull pull Bot locked and limited conversation to collaborators Jul 13, 2026
@pull pull Bot added the ⤵️ pull label Jul 13, 2026
@pull pull Bot merged commit 3511f2a into garazdawi:master Jul 13, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants