Description
In the Linux kernel, the following vulnerability has been resolved: atm/fore200e: Fix possible data race in fore200e_open() Protect access to fore200e->available_cell_rate with rate_mtx lock in the error handling path of fore200e_open() to prevent a data race. The field fore200e->available_cell_rate is a shared resource used to track available bandwidth. It is concurrently accessed by fore200e_open(), fore200e_close(), and fore200e_change_qos(). In fore200e_open(), the lock rate_mtx is correctly held when subtracting vcc->qos.txtp.max_pcr from available_cell_rate to reserve bandwidth. However, if the subsequent call to fore200e_activate_vcin() fails, the function restores the reserved bandwidth by adding back to available_cell_rate without holding the lock. This introduces a race condition because available_cell_rate is a global device resource shared across all VCCs. If the error path in fore200e_open() executes concurrently with operations like fore200e_close() or fore200e_change_qos() on other VCCs, a read-modify-write race occurs. Specifically, the error path reads the rate without the lock. If another CPU acquires the lock and modifies the rate (e.g., releasing bandwidth in fore200e_close()) between this read and the subsequent write, the error path will overwrite the concurrent update with a stale value. This results in incorrect bandwidth accounting.
Product status
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 1b60f42a639999c37da7f1fbfa1ad29cf4cbdd2d
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before bd1415efbab507b9b995918105eef953013449dd
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before ed34c70d88e2b8b9bc6c3ede88751186d6c6d5d1
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 9917ba597cf95f307778e495f71ff25a5064d167
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 667ac868823224374f819500adc5baa2889c7bc5
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 6610361458e7eb6502dd3182f586f91fcc218039
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 82fca3d8a4a34667f01ec2351a607135249c9cff
2.6.12
Any version before 2.6.12
5.10.247 (semver)
5.15.197 (semver)
6.1.159 (semver)
6.6.119 (semver)
6.12.61 (semver)
6.17.11 (semver)
6.18 (original_commit_for_fix)
References
git.kernel.org/...c/1b60f42a639999c37da7f1fbfa1ad29cf4cbdd2d
git.kernel.org/...c/bd1415efbab507b9b995918105eef953013449dd
git.kernel.org/...c/ed34c70d88e2b8b9bc6c3ede88751186d6c6d5d1
git.kernel.org/...c/9917ba597cf95f307778e495f71ff25a5064d167
git.kernel.org/...c/667ac868823224374f819500adc5baa2889c7bc5
git.kernel.org/...c/6610361458e7eb6502dd3182f586f91fcc218039
git.kernel.org/...c/82fca3d8a4a34667f01ec2351a607135249c9cff
Data based on CVE®. Copyright © 1999-2025, The MITRE Corporation. All rights reserved.