Skip to content

Unlimited number of NTS-KE connections can crash ntpd-rs server

High severity GitHub Reviewed Published Jun 28, 2024 in pendulum-project/ntpd-rs • Updated Jul 2, 2024

Package

cargo ntpd (Rust)

Affected versions

>= 0.3.1, <= 1.1.2

Patched versions

1.1.3

Description

Summary

Missing limit for accepted NTS-KE connections allows an unauthenticated remote attacker to crash ntpd-rs when an NTS-KE server is configured. Non NTS-KE server configurations, such as the default ntpd-rs configuration, are unaffected.

Details

Operating systems have a limit for the number of open file descriptors (which includes sockets) in a single process, e.g. 1024 on Linux by default. When ntpd-rs is configured as an NTS server, it accepts TCP connections for the NTS-KE service. If the process has reached the descriptor limit and tries to accept a new TCP connection, the accept() system call will return with the EMFILE error and cause ntpd-rs to abort.

A remote attacker can open a large number of parallel TCP connections to the server to trigger this crash. The connections need to be opened quickly enough to avoid the key-exchange-timeout-ms timeout (by default 1000 milliseconds).

Impact

Only NTS-KE server configuration are affected. Those without an NTS-KE server configuration such as NTS client only or NTP only configuration are unaffected. For affected configurations the ntpd-rs daemon can made completely unavailable by crashing the service. If ntpd-rs is automatically restarted, an attacker can repeat the attack to prevent ntpd-rs from doing anything useful.

Workarounds

  • Disable NTS-KE server functionality
  • Increase system resource limits (RLIMIT_NOFILE) to make the attack more difficult
  • Lower the key-exchange-timeout-ms configuration setting to make the attack more difficult

References

@rnijveld rnijveld published to pendulum-project/ntpd-rs Jun 28, 2024
Published by the National Vulnerability Database Jun 28, 2024
Published to the GitHub Advisory Database Jun 28, 2024
Reviewed Jun 28, 2024
Last updated Jul 2, 2024

Severity

High
7.5
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Weaknesses

CVE ID

CVE-2024-38528

GHSA ID

GHSA-2xpx-vcmq-5f72
Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.