Missing error check on read() susceptible to file descriptor exhaustion

ID

c.resource_availability.random_fd_exhaustion

Severity

low

Remediation Complexity

medium

Remediation Risk

medium

Remediation Effort

medium

Resource

Resource Availability

Language

C / C++

Description

Call to 'read()' without error checking is susceptible to file descriptor exhaustion. Consider using the 'getrandom()' function.

Rationale

Call to 'read()' without error checking is susceptible to file descriptor exhaustion. Consider using the 'getrandom()' function.

The following code illustrates a vulnerable pattern detected by this rule:

int bad_code1() {
    int fd;
    char buf[16];

    // VULNERABLE: Missing error check on read() susceptible to file descriptor exhaustion
    fd = open("/dev/urandom", 0);
    memset(buf, 0, sizeof(buf));
    read(fd, buf, sizeof(buf));

    return 0;
}

Remediation

Follow secure coding practices and review the references below for detailed remediation guidance.

Configuration

This detector does not need any configuration.

References

© 2026 Xygeni. All rights reserved