A vulnerability has been discovered in Libtirpc which could result in denial of service.
| Package | Arch | Vulnerable | Unaffected |
|---|---|---|---|
| net-libs/libtirpc | * | < 1.3.2 | >= 1.3.2 |
Libtirpc is a port of Sun's Transport-Independent RPC library to Linux.
Currently svc_run does not handle poll timeout and rendezvous_request does not handle EMFILE error returned from accept(2 as it used to. These two missing functionality were removed by commit b2c9430f46c4. The effect of not handling poll timeout allows idle TCP conections to remain ESTABLISHED indefinitely. When the number of connections reaches the limit of the open file descriptors (ulimit -n) then accept(2) fails with EMFILE. Since there is no handling of EMFILE error this causes svc_run() to get in a tight loop calling accept(2). This resulting in the RPC service of svc_run is being down, it's no longer able to service any requests. Due to a lack of handling of certain error cases, connections to Libtirpc could remain ESTABLISHED indefinitely.
Denial of service can be achieved via establishing enough connections to Libtirpc to reach the limit of open file descriptors for the process.
There is no known workaround at this time.
All Libtirpc users should upgrade to the latest version:
# emerge --sync # emerge --ask --oneshot --verbose ">=net-libs/libtirpc-1.3.2"
A vulnerability has been found in Libtirpc and RPCBind which may allow a remote attacker to cause a Denial of Service condition.
| Package | Arch | Vulnerable | Unaffected |
|---|---|---|---|
| net-libs/libtirpc | * | < 1.0.1-r1 | >= 1.0.1-r1 |
| net-nds/rpcbind | * | < 0.2.4-r1 | >= 0.2.4-r1 |
The RPCBind utility is a server that converts RPC program numbers into universal addresses.
Libtirpc is a port of Suns Transport-Independent RPC library to Linux.
It was found that due to the way RPCBind uses libtirpc (libntirpc), a memory leak can occur when parsing specially crafted XDR messages.
A remote attacker could send thousands of messages to RPCBind, possibly resulting in a Denial of Service condition.
There is no known workaround at this time.
All RPCBind users should upgrade to the latest version:
# emerge --sync # emerge --ask --oneshot --verbose ">=net-nds/rpcbind-0.2.4-r1"
All Libtirpc users should upgrade to the latest version:
# emerge --sync # emerge --ask --oneshot --verbose ">=net-libs/libtirpc-1.0.1-r1"