CVE-2024-54683

netfilter: IDLETIMER: Fix for possible ABBA deadlock

Medium · published January 11, 2025

CVSS v3.1
5.5
EPSS
0%
Percentile
5.2
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

netfilter: IDLETIMER: Fix for possible ABBA deadlock

Deletion of the last rule referencing a given idletimer may happen at

the same time as a read of its file in sysfs:

| ======================================================

| WARNING: possible circular locking dependency detected

| 6.12.0-rc7-01692-g5e9a28f41134-dirty #594 Not tainted

| ------------------------------------------------------

| iptables/3303 is trying to acquire lock:

| ffff8881057e04b8 (kn->active#48){++++}-{0:0}, at: __kernfs_remove+0x20

|

| but task is already holding lock:

| ffffffffa0249068 (list_mutex){+.+.}-{3:3}, at: idletimer_tg_destroy_v]

|

| which lock already depends on the new lock.

A simple reproducer is:

| #!/bin/bash

|

| while true; do

| iptables -A INPUT -i foo -j IDLETIMER --timeout 10 --label "testme"

| iptables -D INPUT -i foo -j IDLETIMER --timeout 10 --label "testme"

| done &

| while true; do

| cat /sys/class/xt_idletimer/timers/testme >/dev/null

| done

Avoid this by freeing list_mutex right after deleting the element from

the list, then continuing with the teardown.

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00163 · 5.2th percentile
Published
2025-01-11T12:29Z
EPSS history
Timeline
  • 11 JAN 12:29Z
    netfilter: IDLETIMER: Fix for possible ABBA deadlock
    cvelistv5