CVE-2022-50280: pnode: terminate at peers of source

Published Sep 15, 2025
·
Updated

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

pnode: terminate at peers of source

The propagatemnt() function handles mount propagation when creating mounts and propagates the source mount tree @sourcemnt to all applicable nodes of the destination propagation mount tree headed by @destmnt.

Unfortunately it contains a bug where it fails to terminate at peers of @sourcemnt when looking up copies of the source mount that become masters for copies of the source mount tree mounted on top of slaves in the destination propagation tree causing a NULL dereference.

Once the mechanics of the bug are understood it's easy to trigger. Because of unprivileged user namespaces it is available to unprivileged users.

While fixing this bug we've gotten confused multiple times due to unclear terminology or missing concepts. So let's start this with some clarifications:

The terms "master" or "peer" denote a shared mount. A shared mount belongs to a peer group.

A peer group is a set of shared mounts that propagate to each other. They are identified by a peer group id. The peer group id is available in @sharedmnt->mntgroupid. Shared mounts within the same peer group have the same peer group id. The peers in a peer group can be reached via @sharedmnt->mntshare.

The terms "slave mount" or "dependent mount" denote a mount that receives propagation from a peer in a peer group. IOW, shared mounts may have slave mounts and slave mounts have shared mounts as their master. Slave mounts of a given peer in a peer group are listed on that peers slave list available at @sharedmnt->mntslavelist.

The term "master mount" denotes a mount in a peer group. IOW, it denotes a shared mount or a peer mount in a peer group. The term "master mount" - or "master" for short - is mostly used when talking in the context of slave mounts that receive propagation from a master mount. A master mount of a slave identifies the closest peer group a slave mount receives propagation from. The master mount of a slave can be identified via @slavemount->mntmaster. Different slaves may point to different masters in the same peer group.

Multiple peers in a peer group can have non-empty ->mntslavelists. Non-empty ->mntslavelists of peers don't intersect. Consequently, to ensure all slave mounts of a peer group are visited the ->mntslavelists of all peers in a peer group have to be walked.

Slave mounts point to a peer in the closest peer group they receive propagation from via @slavemnt->mntmaster (see above). Together with these peers they form a propagation group (see below). The closest peer group can thus be identified through the peer group id @slavemnt->mntmaster->mntgroupid of the peer/master that a slave mount receives propagation from.

A shared-slave mount is a slave mount to a peer group pg1 while also a peer in another peer group pg2. IOW, a peer group may receive propagation from another peer group.

If a peer group pg1 is a slave to another peer group pg2 then all peers in peer group pg1 point to the same peer in peer group pg2 via ->mntmaster. IOW, all peers in peer group pg1 appear on the same ->mntslavelist. IOW, they cannot be slaves to different peer groups.

A pure slave mount is a slave mount that is a slave to a peer group but is not a peer in another peer group.

A propagation group denotes the set of mounts consisting of a single peer group pg1 and all slave mounts and shared-slave mounts that point to a peer in that peer group via ->mntmaster. IOW, all slave mounts such that @slavemnt->mntmaster->mntgroupid is equal to @sharedmnt->mntgroupid.

The concept of a propagation group makes it easier to talk about a single propagation level in a propagation tree.

For example, in propagatemnt() the immediate peers of @destmnt and all slaves of @destmnt's peer group form a propagation group pr ---truncated---

Affected Software

9 affected components
Linux Linux kernel
Linux Linux kernel>=3.14.3<4.9.337
Linux Linux kernel>=4.10<4.14.303
Linux Linux kernel>=4.15<4.19.270
Linux Linux kernel>=4.20<5.4.229
Linux Linux kernel>=5.5<5.10.163
Linux Linux kernel>=5.11<5.15.87
Linux Linux kernel>=5.16<6.0.17
Linux Linux kernel>=6.1<6.1.3

Event History

Sep 15, 2025
CVE Published
via MITRE·02:21 PM
Data Sourced
via MITRE·02:21 PM
Description
Data Sourced
via NVD·03:15 PM
RemedyDescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2022-50280?

CVE-2022-50280 is classified as a medium severity vulnerability in the Linux kernel.

2

How do I fix CVE-2022-50280?

To fix CVE-2022-50280, you should update your Linux kernel to the latest version that contains the patch for this vulnerability.

3

What versions of the Linux kernel are affected by CVE-2022-50280?

CVE-2022-50280 affects various Linux kernel versions between 3.14.3 and 6.1.3.

4

What type of vulnerability is CVE-2022-50280?

CVE-2022-50280 is related to mount propagation in the Linux kernel's pnode handling.

5

Is there a known exploit for CVE-2022-50280?

At present, there are no public exploitations reported for CVE-2022-50280.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203