CVE-2026-46085
Description
In the Linux kernel, the following vulnerability has been resolved:
rxrpc: Fix rxkad crypto unalignment handling
Fix handling of a packet with a misaligned crypto length. Also handle non-ENOMEM errors from decryption by aborting. Further, remove the WARN_ON_ONCE() so that it can't be remotely triggered (a trace line can still be emitted).
Affected products
2Patches
10f1c6bd0cc786rxrpc: Fix rxkad crypto unalignment handling
2 files changed · +8 −3
include/trace/events/rxrpc.h+1 −0 modifieddiff --git a/include/trace/events/rxrpc.h b/include/trace/events/rxrpc.h index 6965099dda89fa..2da9fbd5c5a323 100644 --- a/include/trace/events/rxrpc.h +++ b/include/trace/events/rxrpc.h @@ -36,6 +36,7 @@ EM(rxkad_abort_1_short_encdata, "rxkad1-short-encdata") \ EM(rxkad_abort_1_short_header, "rxkad1-short-hdr") \ EM(rxkad_abort_2_short_check, "rxkad2-short-check") \ + EM(rxkad_abort_2_crypto_unaligned, "rxkad2-crypto-unaligned") \ EM(rxkad_abort_2_short_data, "rxkad2-short-data") \ EM(rxkad_abort_2_short_header, "rxkad2-short-hdr") \ EM(rxkad_abort_2_short_len, "rxkad2-short-len") \
net/rxrpc/rxkad.c+7 −3 modifieddiff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c index 0f57c02d249e53..e2119af5525002 100644 --- a/net/rxrpc/rxkad.c +++ b/net/rxrpc/rxkad.c @@ -492,6 +492,9 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, rxkad_abort_2_short_header); + /* Don't let the crypto algo see a misaligned length. */ + sp->len = round_down(sp->len, 8); + /* Decrypt the skbuff in-place. TODO: We really want to decrypt * directly into the target buffer. */ @@ -525,8 +528,10 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, if (sg != _sg) kfree(sg); if (ret < 0) { - WARN_ON_ONCE(ret != -ENOMEM); - return ret; + if (ret == -ENOMEM) + return ret; + return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, + rxkad_abort_2_crypto_unaligned); } /* Extract the decrypted packet length */ -- cgit 1.3-korg
440d20d95e84rxrpc: Fix rxkad crypto unalignment handling
2 files changed · +8 −3
include/trace/events/rxrpc.h+1 −0 modifieddiff --git a/include/trace/events/rxrpc.h b/include/trace/events/rxrpc.h index 3eb806f7bc6a5e..0348d1d20cf874 100644 --- a/include/trace/events/rxrpc.h +++ b/include/trace/events/rxrpc.h @@ -36,6 +36,7 @@ EM(rxkad_abort_1_short_encdata, "rxkad1-short-encdata") \ EM(rxkad_abort_1_short_header, "rxkad1-short-hdr") \ EM(rxkad_abort_2_short_check, "rxkad2-short-check") \ + EM(rxkad_abort_2_crypto_unaligned, "rxkad2-crypto-unaligned") \ EM(rxkad_abort_2_short_data, "rxkad2-short-data") \ EM(rxkad_abort_2_short_header, "rxkad2-short-hdr") \ EM(rxkad_abort_2_short_len, "rxkad2-short-len") \
net/rxrpc/rxkad.c+7 −3 modifieddiff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c index c59a0c375740ec..73bbe8cd391be9 100644 --- a/net/rxrpc/rxkad.c +++ b/net/rxrpc/rxkad.c @@ -494,6 +494,9 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, rxkad_abort_2_short_header); + /* Don't let the crypto algo see a misaligned length. */ + sp->len = round_down(sp->len, 8); + /* Decrypt the skbuff in-place. TODO: We really want to decrypt * directly into the target buffer. */ @@ -527,8 +530,10 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, if (sg != _sg) kfree(sg); if (ret < 0) { - WARN_ON_ONCE(ret != -ENOMEM); - return ret; + if (ret == -ENOMEM) + return ret; + return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, + rxkad_abort_2_crypto_unaligned); } /* Extract the decrypted packet length */ -- cgit 1.3-korg
f0d3efd03b2arxrpc: Fix rxkad crypto unalignment handling
2 files changed · +8 −3
include/trace/events/rxrpc.h+1 −0 modifieddiff --git a/include/trace/events/rxrpc.h b/include/trace/events/rxrpc.h index 8d77828b751551..13b9d017f8e177 100644 --- a/include/trace/events/rxrpc.h +++ b/include/trace/events/rxrpc.h @@ -37,6 +37,7 @@ EM(rxkad_abort_1_short_encdata, "rxkad1-short-encdata") \ EM(rxkad_abort_1_short_header, "rxkad1-short-hdr") \ EM(rxkad_abort_2_short_check, "rxkad2-short-check") \ + EM(rxkad_abort_2_crypto_unaligned, "rxkad2-crypto-unaligned") \ EM(rxkad_abort_2_short_data, "rxkad2-short-data") \ EM(rxkad_abort_2_short_header, "rxkad2-short-hdr") \ EM(rxkad_abort_2_short_len, "rxkad2-short-len") \
net/rxrpc/rxkad.c+7 −3 modifieddiff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c index 4e04e5acf6eed0..af24d54b6b4fc5 100644 --- a/net/rxrpc/rxkad.c +++ b/net/rxrpc/rxkad.c @@ -510,6 +510,9 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, rxkad_abort_2_short_header); + /* Don't let the crypto algo see a misaligned length. */ + sp->len = round_down(sp->len, 8); + /* Decrypt the skbuff in-place. TODO: We really want to decrypt * directly into the target buffer. */ @@ -543,8 +546,10 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, if (sg != _sg) kfree(sg); if (ret < 0) { - WARN_ON_ONCE(ret != -ENOMEM); - return ret; + if (ret == -ENOMEM) + return ret; + return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, + rxkad_abort_2_crypto_unaligned); } /* Extract the decrypted packet length */ -- cgit 1.3-korg
def304aae2edrxrpc: Fix rxkad crypto unalignment handling
2 files changed · +8 −3
include/trace/events/rxrpc.h+1 −0 modifieddiff --git a/include/trace/events/rxrpc.h b/include/trace/events/rxrpc.h index 578b8038b21178..5820d7e41ea09a 100644 --- a/include/trace/events/rxrpc.h +++ b/include/trace/events/rxrpc.h @@ -37,6 +37,7 @@ EM(rxkad_abort_1_short_encdata, "rxkad1-short-encdata") \ EM(rxkad_abort_1_short_header, "rxkad1-short-hdr") \ EM(rxkad_abort_2_short_check, "rxkad2-short-check") \ + EM(rxkad_abort_2_crypto_unaligned, "rxkad2-crypto-unaligned") \ EM(rxkad_abort_2_short_data, "rxkad2-short-data") \ EM(rxkad_abort_2_short_header, "rxkad2-short-hdr") \ EM(rxkad_abort_2_short_len, "rxkad2-short-len") \
net/rxrpc/rxkad.c+7 −3 modifieddiff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c index 5a720222854fac..cba7935977f0ba 100644 --- a/net/rxrpc/rxkad.c +++ b/net/rxrpc/rxkad.c @@ -510,6 +510,9 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, rxkad_abort_2_short_header); + /* Don't let the crypto algo see a misaligned length. */ + sp->len = round_down(sp->len, 8); + /* Decrypt the skbuff in-place. TODO: We really want to decrypt * directly into the target buffer. */ @@ -543,8 +546,10 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, if (sg != _sg) kfree(sg); if (ret < 0) { - WARN_ON_ONCE(ret != -ENOMEM); - return ret; + if (ret == -ENOMEM) + return ret; + return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, + rxkad_abort_2_crypto_unaligned); } /* Extract the decrypted packet length */ -- cgit 1.3-korg
af9271eb666drxrpc: Fix rxkad crypto unalignment handling
2 files changed · +8 −3
include/trace/events/rxrpc.h+1 −0 modifieddiff --git a/include/trace/events/rxrpc.h b/include/trace/events/rxrpc.h index 8d77828b751551..13b9d017f8e177 100644 --- a/include/trace/events/rxrpc.h +++ b/include/trace/events/rxrpc.h @@ -37,6 +37,7 @@ EM(rxkad_abort_1_short_encdata, "rxkad1-short-encdata") \ EM(rxkad_abort_1_short_header, "rxkad1-short-hdr") \ EM(rxkad_abort_2_short_check, "rxkad2-short-check") \ + EM(rxkad_abort_2_crypto_unaligned, "rxkad2-crypto-unaligned") \ EM(rxkad_abort_2_short_data, "rxkad2-short-data") \ EM(rxkad_abort_2_short_header, "rxkad2-short-hdr") \ EM(rxkad_abort_2_short_len, "rxkad2-short-len") \
net/rxrpc/rxkad.c+7 −3 modifieddiff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c index 5a720222854fac..cba7935977f0ba 100644 --- a/net/rxrpc/rxkad.c +++ b/net/rxrpc/rxkad.c @@ -510,6 +510,9 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, rxkad_abort_2_short_header); + /* Don't let the crypto algo see a misaligned length. */ + sp->len = round_down(sp->len, 8); + /* Decrypt the skbuff in-place. TODO: We really want to decrypt * directly into the target buffer. */ @@ -543,8 +546,10 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, if (sg != _sg) kfree(sg); if (ret < 0) { - WARN_ON_ONCE(ret != -ENOMEM); - return ret; + if (ret == -ENOMEM) + return ret; + return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, + rxkad_abort_2_crypto_unaligned); } /* Extract the decrypted packet length */ -- cgit 1.3-korg
440d20d95e84rxrpc: Fix rxkad crypto unalignment handling
2 files changed · +8 −3
include/trace/events/rxrpc.h+1 −0 modifieddiff --git a/include/trace/events/rxrpc.h b/include/trace/events/rxrpc.h index 3eb806f7bc6a5e..0348d1d20cf874 100644 --- a/include/trace/events/rxrpc.h +++ b/include/trace/events/rxrpc.h @@ -36,6 +36,7 @@ EM(rxkad_abort_1_short_encdata, "rxkad1-short-encdata") \ EM(rxkad_abort_1_short_header, "rxkad1-short-hdr") \ EM(rxkad_abort_2_short_check, "rxkad2-short-check") \ + EM(rxkad_abort_2_crypto_unaligned, "rxkad2-crypto-unaligned") \ EM(rxkad_abort_2_short_data, "rxkad2-short-data") \ EM(rxkad_abort_2_short_header, "rxkad2-short-hdr") \ EM(rxkad_abort_2_short_len, "rxkad2-short-len") \
net/rxrpc/rxkad.c+7 −3 modifieddiff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c index c59a0c375740ec..73bbe8cd391be9 100644 --- a/net/rxrpc/rxkad.c +++ b/net/rxrpc/rxkad.c @@ -494,6 +494,9 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, rxkad_abort_2_short_header); + /* Don't let the crypto algo see a misaligned length. */ + sp->len = round_down(sp->len, 8); + /* Decrypt the skbuff in-place. TODO: We really want to decrypt * directly into the target buffer. */ @@ -527,8 +530,10 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, if (sg != _sg) kfree(sg); if (ret < 0) { - WARN_ON_ONCE(ret != -ENOMEM); - return ret; + if (ret == -ENOMEM) + return ret; + return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, + rxkad_abort_2_crypto_unaligned); } /* Extract the decrypted packet length */ -- cgit 1.3-korg
af9271eb666drxrpc: Fix rxkad crypto unalignment handling
2 files changed · +8 −3
include/trace/events/rxrpc.h+1 −0 modifieddiff --git a/include/trace/events/rxrpc.h b/include/trace/events/rxrpc.h index 8d77828b751551..13b9d017f8e177 100644 --- a/include/trace/events/rxrpc.h +++ b/include/trace/events/rxrpc.h @@ -37,6 +37,7 @@ EM(rxkad_abort_1_short_encdata, "rxkad1-short-encdata") \ EM(rxkad_abort_1_short_header, "rxkad1-short-hdr") \ EM(rxkad_abort_2_short_check, "rxkad2-short-check") \ + EM(rxkad_abort_2_crypto_unaligned, "rxkad2-crypto-unaligned") \ EM(rxkad_abort_2_short_data, "rxkad2-short-data") \ EM(rxkad_abort_2_short_header, "rxkad2-short-hdr") \ EM(rxkad_abort_2_short_len, "rxkad2-short-len") \
net/rxrpc/rxkad.c+7 −3 modifieddiff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c index 5a720222854fac..cba7935977f0ba 100644 --- a/net/rxrpc/rxkad.c +++ b/net/rxrpc/rxkad.c @@ -510,6 +510,9 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, rxkad_abort_2_short_header); + /* Don't let the crypto algo see a misaligned length. */ + sp->len = round_down(sp->len, 8); + /* Decrypt the skbuff in-place. TODO: We really want to decrypt * directly into the target buffer. */ @@ -543,8 +546,10 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, if (sg != _sg) kfree(sg); if (ret < 0) { - WARN_ON_ONCE(ret != -ENOMEM); - return ret; + if (ret == -ENOMEM) + return ret; + return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, + rxkad_abort_2_crypto_unaligned); } /* Extract the decrypted packet length */ -- cgit 1.3-korg
def304aae2edrxrpc: Fix rxkad crypto unalignment handling
2 files changed · +8 −3
include/trace/events/rxrpc.h+1 −0 modifieddiff --git a/include/trace/events/rxrpc.h b/include/trace/events/rxrpc.h index 578b8038b21178..5820d7e41ea09a 100644 --- a/include/trace/events/rxrpc.h +++ b/include/trace/events/rxrpc.h @@ -37,6 +37,7 @@ EM(rxkad_abort_1_short_encdata, "rxkad1-short-encdata") \ EM(rxkad_abort_1_short_header, "rxkad1-short-hdr") \ EM(rxkad_abort_2_short_check, "rxkad2-short-check") \ + EM(rxkad_abort_2_crypto_unaligned, "rxkad2-crypto-unaligned") \ EM(rxkad_abort_2_short_data, "rxkad2-short-data") \ EM(rxkad_abort_2_short_header, "rxkad2-short-hdr") \ EM(rxkad_abort_2_short_len, "rxkad2-short-len") \
net/rxrpc/rxkad.c+7 −3 modifieddiff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c index 5a720222854fac..cba7935977f0ba 100644 --- a/net/rxrpc/rxkad.c +++ b/net/rxrpc/rxkad.c @@ -510,6 +510,9 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, rxkad_abort_2_short_header); + /* Don't let the crypto algo see a misaligned length. */ + sp->len = round_down(sp->len, 8); + /* Decrypt the skbuff in-place. TODO: We really want to decrypt * directly into the target buffer. */ @@ -543,8 +546,10 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, if (sg != _sg) kfree(sg); if (ret < 0) { - WARN_ON_ONCE(ret != -ENOMEM); - return ret; + if (ret == -ENOMEM) + return ret; + return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, + rxkad_abort_2_crypto_unaligned); } /* Extract the decrypted packet length */ -- cgit 1.3-korg
f1c6bd0cc786rxrpc: Fix rxkad crypto unalignment handling
2 files changed · +8 −3
include/trace/events/rxrpc.h+1 −0 modifieddiff --git a/include/trace/events/rxrpc.h b/include/trace/events/rxrpc.h index 6965099dda89fa..2da9fbd5c5a323 100644 --- a/include/trace/events/rxrpc.h +++ b/include/trace/events/rxrpc.h @@ -36,6 +36,7 @@ EM(rxkad_abort_1_short_encdata, "rxkad1-short-encdata") \ EM(rxkad_abort_1_short_header, "rxkad1-short-hdr") \ EM(rxkad_abort_2_short_check, "rxkad2-short-check") \ + EM(rxkad_abort_2_crypto_unaligned, "rxkad2-crypto-unaligned") \ EM(rxkad_abort_2_short_data, "rxkad2-short-data") \ EM(rxkad_abort_2_short_header, "rxkad2-short-hdr") \ EM(rxkad_abort_2_short_len, "rxkad2-short-len") \
net/rxrpc/rxkad.c+7 −3 modifieddiff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c index 0f57c02d249e53..e2119af5525002 100644 --- a/net/rxrpc/rxkad.c +++ b/net/rxrpc/rxkad.c @@ -492,6 +492,9 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, rxkad_abort_2_short_header); + /* Don't let the crypto algo see a misaligned length. */ + sp->len = round_down(sp->len, 8); + /* Decrypt the skbuff in-place. TODO: We really want to decrypt * directly into the target buffer. */ @@ -525,8 +528,10 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, if (sg != _sg) kfree(sg); if (ret < 0) { - WARN_ON_ONCE(ret != -ENOMEM); - return ret; + if (ret == -ENOMEM) + return ret; + return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, + rxkad_abort_2_crypto_unaligned); } /* Extract the decrypted packet length */ -- cgit 1.3-korg
f0d3efd03b2arxrpc: Fix rxkad crypto unalignment handling
2 files changed · +8 −3
include/trace/events/rxrpc.h+1 −0 modifieddiff --git a/include/trace/events/rxrpc.h b/include/trace/events/rxrpc.h index 8d77828b751551..13b9d017f8e177 100644 --- a/include/trace/events/rxrpc.h +++ b/include/trace/events/rxrpc.h @@ -37,6 +37,7 @@ EM(rxkad_abort_1_short_encdata, "rxkad1-short-encdata") \ EM(rxkad_abort_1_short_header, "rxkad1-short-hdr") \ EM(rxkad_abort_2_short_check, "rxkad2-short-check") \ + EM(rxkad_abort_2_crypto_unaligned, "rxkad2-crypto-unaligned") \ EM(rxkad_abort_2_short_data, "rxkad2-short-data") \ EM(rxkad_abort_2_short_header, "rxkad2-short-hdr") \ EM(rxkad_abort_2_short_len, "rxkad2-short-len") \
net/rxrpc/rxkad.c+7 −3 modifieddiff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c index 4e04e5acf6eed0..af24d54b6b4fc5 100644 --- a/net/rxrpc/rxkad.c +++ b/net/rxrpc/rxkad.c @@ -510,6 +510,9 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, rxkad_abort_2_short_header); + /* Don't let the crypto algo see a misaligned length. */ + sp->len = round_down(sp->len, 8); + /* Decrypt the skbuff in-place. TODO: We really want to decrypt * directly into the target buffer. */ @@ -543,8 +546,10 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb, if (sg != _sg) kfree(sg); if (ret < 0) { - WARN_ON_ONCE(ret != -ENOMEM); - return ret; + if (ret == -ENOMEM) + return ret; + return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON, + rxkad_abort_2_crypto_unaligned); } /* Extract the decrypted packet length */ -- cgit 1.3-korg
Vulnerability mechanics
Root cause
"Missing length alignment check in rxkad_verify_packet_2 allows the crypto algorithm to receive a misaligned packet length, and non-ENOMEM decryption errors are improperly handled while a WARN_ON_ONCE can be remotely triggered."
Attack vector
An attacker sends a crafted RxRPC packet with a misaligned crypto length to a system using the rxkad security class. The function rxkad_verify_packet_2 in net/rxrpc/rxkad.c passes this misaligned length to the decryption algorithm, which can cause undefined behavior or a crash. Additionally, if decryption fails with a non-ENOMEM error, the old code returned the raw error code and triggered a WARN_ON_ONCE, which a remote attacker could use to cause a kernel warning or panic [patch_id=2659829].
Affected code
The vulnerable function is `rxkad_verify_packet_2` in `net/rxrpc/rxkad.c`. The trace event header `include/trace/events/rxrpc.h` is also modified to add the new abort tracepoint `rxkad_abort_2_crypto_unaligned` [patch_id=2659829].
What the fix does
The patch adds `sp->len = round_down(sp->len, 8)` before decryption to ensure the crypto algorithm never sees a misaligned length [patch_id=2659829]. It also replaces the unconditional `return ret` on decryption failure with a check: only -ENOMEM errors propagate, while all other errors trigger `rxrpc_abort_eproto()` with the new tracepoint `rxkad_abort_2_crypto_unaligned`. Finally, the `WARN_ON_ONCE(ret != -ENOMEM)` is removed and replaced with a trace line, preventing remote triggering of a kernel warning [patch_id=2659829].
Preconditions
- configThe target must be using the rxkad security class for RxRPC connections.
- networkThe attacker must be able to send a crafted RxRPC packet over the network to the target.
- authNo authentication is required; the vulnerability is triggered during packet verification before authentication completes.
Generated on May 27, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
5- git.kernel.org/stable/c/440d20d95e844b657a93a0b2dcc2aae155efdce6nvd
- git.kernel.org/stable/c/af9271eb666d07b6f65612dc160a47f7cb5220ednvd
- git.kernel.org/stable/c/def304aae2edf321d2671fd6ca766a93c21f877envd
- git.kernel.org/stable/c/f0d3efd03b2a9e0f1ffa6df8fcb264af3d494286nvd
- git.kernel.org/stable/c/f1c6bd0cc786a8fa74829ce3c4b3673944a308f4nvd
News mentions
0No linked articles in our index yet.