[Rpm-maint] [rpm-software-management/rpm] `removeSBITS()` return value ignored on multi-link setuid files (Issue #4200)

Dan Anderson notifications at github.com
Tue May 5 01:35:02 UTC 2026


MillaFleurs created an issue (rpm-software-management/rpm#4200)

**Describe the bug**
In fsm.cc line 478 we have this comment here:

```cpp
	/* XXX TODO: actually check for the rc, but what to do there? */
```

This comment is around the fact that when rpm removes a file it strips the setuid/setguid bit before erasing or replacing in order to prevent surviving hardlinks from keeping priviledged mode bits.

I am providing a patch to fix this TODO / bug.  

**To Reproduce**
I'm attaching a file poc.sh.  Run poc.sh as root and you will create a hardlink 

**Expected behavior**
The hardlink should be stripped of the setuid bit.  Instead the hardlink keeps the setuid bit.  This can create a hidden bug.  Hardlink keeps the same inode.

So what should happen is the hardlink should have the setuid removed but instead it keeps it.

**Output**
>From my POC:

```bash
Before erase:
inode=52419 links=2 mode=4755 owner=root:root path=/tmp/tmp.4SVYjU1Jhd/root/opt/rpm1/suidbin
inode=52419 links=2 mode=4755 owner=root:root path=/tmp/tmp.4SVYjU1Jhd/root/tmp/suid_keepsake
rpm -e exit code: 0
After erase:
inode=52419 links=1 mode=4755 owner=root:root path=/tmp/tmp.4SVYjU1Jhd/root/tmp/suid_keepsake
```

```/tmp/suid_keepsake``` remains setuid set.  

**Environment**
 - OS / Distribution: CentOS Stream release 10 (Coughlan)
 - Version RPM version 4.19.1.1

**Additional context**
Bug found using the [N184 Bug and Vulnerability Scanner](https://github.com/MillaFleurs/N184)


-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/4200
You are receiving this because you are subscribed to this thread.

Message ID: <rpm-software-management/rpm/issues/4200 at github.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rpm.org/pipermail/rpm-maint/attachments/20260504/438640f9/attachment.htm>


More information about the Rpm-maint mailing list