GHSA-2xpx-vcmq-5f72

Suggest an improvement
Source
https://github.com/advisories/GHSA-2xpx-vcmq-5f72
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2024/06/GHSA-2xpx-vcmq-5f72/GHSA-2xpx-vcmq-5f72.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-2xpx-vcmq-5f72
Aliases
  • CVE-2024-38528
Published
2024-06-28T21:05:52Z
Modified
2024-07-02T02:26:15Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
  • 8.7 (High) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N CVSS Calculator
Summary
Unlimited number of NTS-KE connections can crash ntpd-rs server
Details

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
Database specific
{
    "nvd_published_at": "2024-06-28T20:15:02Z",
    "cwe_ids": [
        "CWE-770"
    ],
    "severity": "HIGH",
    "github_reviewed": true,
    "github_reviewed_at": "2024-06-28T21:05:52Z"
}
References

Affected packages

crates.io / ntpd

Package

Affected ranges

Type
SEMVER
Events
Introduced
0.3.1
Fixed
1.1.3

Database specific

{
    "last_known_affected_version_range": "<= 1.1.2"
}