Re:
Alperen Erkan <[email protected]> Fri, 24 Jul 2026 18:29:50 +0300
| Newsgroups | gmane.os.hurd.bugs |
|---|---|
| Message-ID | <CAB6ChQ6eLOtMKvCi6Omf-VxFQJ4K+-nZ-+2q9F8sgy=0o0Kf4A@mail.gmail.com> |
--000000000000e25cb406575d0bd5 Content-Type: multipart/alternative; boundary="000000000000e25cb306575d0bd3" --000000000000e25cb306575d0bd3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable ipc: Harden ipc_mqueue_send against null pointers, OOM, and race conditions I have written a patch for the `ipc_mqueue_send` implementation in GNU Mach (ipc/ipc_mqueue.c) that makes it safer against potential null pointer accesses, allocation limit exhaustion under heavy message loads, and race conditions on multi-core systems. You can already see the fixes for the vulnerabilities that caught my attention whilst reading the code in the patch. Thanks, Alperen On Fri, Jul 24, 2026 at 4:39=E2=80=AFPM Alperen Erkan <erkanalperen54@gmail= .com> wrote: > > Thank you for the guidance and review! > > I have attached the clean patch file (0001-ipc_kmsg-fixes.patch) directly > to this email to prevent any whitespace or formatting issues. It contains > only the IPC memory fix and bounds checks. > > Regarding the documentation and communication: Understood. I will > translate my technical notes into English and discuss all future findings > directly here on [email protected] > > Forwarding the patch to the bug-hurd mailing list for review and public > discussion. > > Best regards, > Alperen Erkan > --000000000000e25cb306575d0bd3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div><div>ipc: Harden ipc_mqueue_send against null pointer= s, OOM, and race conditions<br><br>I have written a patch for the `ipc_mque= ue_send` implementation in GNU Mach (ipc/ipc_mqueue.c) that makes it safer = against potential null pointer accesses, allocation limit exhaustion under = heavy message loads, and race conditions on multi-core systems. You can alr= eady see the fixes for the vulnerabilities that caught my attention whilst = reading the code in the patch.<br><br></div>Thanks,<br></div>Alperen</div><= br><div class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class= =3D"gmail_attr">On Fri, Jul 24, 2026 at 4:39=E2=80=AFPM Alperen Erkan <<= a href=3D"mailto:[email protected]">[email protected]</a>>= wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px = 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir= =3D"ltr"><div><br>Thank you for the guidance and review!<br><br>I have atta= ched the=20 clean patch file (0001-ipc_kmsg-fixes.patch) directly to this email to=20 prevent any whitespace or formatting issues. It contains only the IPC=20 memory fix and bounds checks.<br><br>Regarding the documentation and=20 communication: Understood. I will translate my technical notes into=20 English and discuss all future findings directly here on <a href=3D"mailto:= [email protected]" target=3D"_blank">[email protected]</a></div><div><br></di= v><div>Forwarding the patch to the bug-hurd mailing list for review and pub= lic discussion.</div><br>Best regards,<br>Alperen Erkan</div> </blockquote></div> --000000000000e25cb306575d0bd3-- --000000000000e25cb406575d0bd5 Content-Type: application/octet-stream; name="ipc_mqueue_fix.patch" Content-Disposition: attachment; filename="ipc_mqueue_fix.patch" Content-Transfer-Encoding: base64 Content-ID: <f_mrz3j4120> X-Attachment-Id: f_mrz3j4120 ZGlmZiAtLWdpdCBhL2dudW1hY2gvaXBjL2lwY19tcXVldWUuYyBiL2dudW1hY2gvaXBjL2lwY19t cXVldWUuYwppbmRleCBmNzcwYWZiLi44MzRlYjE2IDEwMDY0NAotLS0gYS9nbnVtYWNoL2lwYy9p cGNfbXF1ZXVlLmMKKysrIGIvZ251bWFjaC9pcGMvaXBjX21xdWV1ZS5jCkBAIC0zLDcgKzMsNiBA QAogICogQ29weXJpZ2h0IChjKSAxOTkxLDE5OTAsMTk4OSBDYXJuZWdpZSBNZWxsb24gVW5pdmVy c2l0eS4KICAqIENvcHlyaWdodCAoYykgMTk5MywxOTk0IFRoZSBVbml2ZXJzaXR5IG9mIFV0YWgg YW5kCiAgKiB0aGUgQ29tcHV0ZXIgU3lzdGVtcyBMYWJvcmF0b3J5IChDU0wpLgotICogQ29weXJp Z2h0IChjKSAyMDI2IEFscGVyZW4gRVJLQU4gLSBTdHV4NiBUZWNobm9sb2d5CiAgKiBBbGwgcmln aHRzIHJlc2VydmVkLgogICoKICAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnkgYW5k IGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzCkBAIC0yOCwxMSArMjcsMTEgQEAKICAq IHRoZSByaWdodHMgdG8gcmVkaXN0cmlidXRlIHRoZXNlIGNoYW5nZXMuCiAgKi8KIC8qCi0gKglG aWxlOglpcGMvaXBjX21xdWV1ZS5jCi0gKglBdXRob3I6CVJpY2ggRHJhdmVzCi0gKglEYXRlOgky MDI2IAorICogIEZpbGU6ICAgaXBjL2lwY19tcXVldWUuYworICogIEF1dGhvcjogUmljaCBEcmF2 ZXMgLyBBbHBlcmVuIEVSS0FOIAorICogIERhdGU6ICAgMjAyNiAKICAqCi0gKglGdW5jdGlvbnMg dG8gbWFuaXB1bGF0ZSBJUEMgbWVzc2FnZSBxdWV1ZXMuCisgKiAgRnVuY3Rpb25zIHRvIG1hbmlw dWxhdGUgSVBDIG1lc3NhZ2UgcXVldWVzLgogICovCiAKICNpbmNsdWRlIDxtYWNoL3BvcnQuaD4K QEAgLTUyLDYgKzUxLDEwIEBACiAjaW5jbHVkZSA8aXBjL2lwY19zcGFjZS5oPgogI2luY2x1ZGUg PGlwYy9pcGNfbWFyZXF1ZXN0Lmg+CiAKKy8qIAorICogQW4gYWJzb2x1dGUgbWVzc2FnZSBxdWV1 ZSB1cHBlciBsaW1pdCB0byBwcmV2ZW50IE9PTSBhbmQgbWVtb3J5IGV4aGF1c3Rpb24uCisgKi8K KyNkZWZpbmUgSVBDX01RVUVVRV9IQVJEX0xJTUlUIDY1NTM2CiAKIAogLyoKQEAgLTE1Niw2ICsx NTksOCBAQCBpcGNfbXF1ZXVlX2NoYW5nZWQoCiAKIC8qCiAgKglSb3V0aW5lOglpcGNfbXF1ZXVl X3NlbmQKKyAqICBBdXRob3IgOiAgICBBbHBlcmVuIEVSS0FOIAorICogCQkJCQkJIDIwMjYKICAq CVB1cnBvc2U6CiAgKgkJU2VuZCBhIG1lc3NhZ2UgdG8gYSBwb3J0LiAgVGhlIG1lc3NhZ2UgaG9s ZHMgYSByZWZlcmVuY2UKICAqCQlmb3IgdGhlIGRlc3RpbmF0aW9uIHBvcnQgaW4gdGhlIG1zZ2hf cmVtb3RlX3BvcnQgZmllbGQuCkBAIC0xODAsOCArMTg1LDE2IEBAIGlwY19tcXVldWVfc2VuZCgK IHsKIAlpcGNfcG9ydF90IHBvcnQ7CiAKKwkvKiBEZWZlbnNpdmUgQzogQ2hlY2tpbmcgdGhlIGlu Y29taW5nIG1lc3NhZ2Ugb2JqZWN0IGFuZCBkZXN0aW5hdGlvbiBwb3J0ICovCisJaWYgKGttc2cg PT0gSUtNX05VTEwpIHsKKyAgICAJcmV0dXJuIE1BQ0hfU0VORF9JTlZBTElEX0RBVEE7CisJfQor CiAJcG9ydCA9IChpcGNfcG9ydF90KSBrbXNnLT5pa21faGVhZGVyLm1zZ2hfcmVtb3RlX3BvcnQ7 Ci0JYXNzZXJ0KElQX1ZBTElEKHBvcnQpKTsKKworCWlmICghSVBfVkFMSUQocG9ydCkpIHsKKyAg IAkgICByZXR1cm4gTUFDSF9TRU5EX0lOVkFMSURfREVTVDsKKwl9CiAKIAlpcF9sb2NrKHBvcnQp OwogCkBAIC0yMzAsMTcgKzI0MywxNyBAQCBpcGNfbXF1ZXVlX3NlbmQoCiAJCX0KIAogCQkvKgot CQkgKiAgRG9uJ3QgYmxvY2sgaWY6Ci0JCSAqCTEpIFdlJ3JlIHVuZGVyIHRoZSBxdWV1ZSBsaW1p dC4KLQkJICoJMikgQ2FsbGVyIHVzZWQgdGhlIE1BQ0hfU0VORF9BTFdBWVMgaW50ZXJuYWwgb3B0 aW9uLgotCQkgKgkzKSBNZXNzYWdlIGlzIHNlbnQgdG8gYSBzZW5kLW9uY2UgcmlnaHQuCi0JCSAq LwotCi0JCWlmICgocG9ydC0+aXBfbXNnY291bnQgPCBwb3J0LT5pcF9xbGltaXQpIHx8Ci0JCSAg ICAob3B0aW9uICYgTUFDSF9TRU5EX0FMV0FZUykgfHwKLQkJICAgIChNQUNIX01TR0hfQklUU19S RU1PVEUoa21zZy0+aWttX2hlYWRlci5tc2doX2JpdHMpID09Ci0JCQkJCQlNQUNIX01TR19UWVBF X1BPUlRfU0VORF9PTkNFKSkKLQkJCWJyZWFrOworICAgICAgICAgKiAgRG9uJ3QgYmxvY2sgaWY6 CisgICAgICAgICAqICAxKSBXZSdyZSB1bmRlciB0aGUgcXVldWUgbGltaXQuCisgICAgICAgICAq ICAyKSBDYWxsZXIgdXNlZCBNQUNIX1NFTkRfQUxXQVlTIGJ1dCB3ZSBhcmUgdW5kZXIgdGhlIGhh cmQgc2FmZXR5IGxpbWl0LgorICAgICAgICAgKiAgMykgTWVzc2FnZSBpcyBzZW50IHRvIGEgc2Vu ZC1vbmNlIHJpZ2h0LgorICAgICAgICAgKi8KKworICAgICAgICBpZiAoKHBvcnQtPmlwX21zZ2Nv dW50IDwgcG9ydC0+aXBfcWxpbWl0KSB8fAorICAgICAgICAgICAgKChvcHRpb24gJiBNQUNIX1NF TkRfQUxXQVlTKSAmJiAocG9ydC0+aXBfbXNnY291bnQgPCBJUENfTVFVRVVFX0hBUkRfTElNSVQp KSB8fAorICAgICAgICAgICAgKE1BQ0hfTVNHSF9CSVRTX1JFTU9URShrbXNnLT5pa21faGVhZGVy Lm1zZ2hfYml0cykgPT0KKyAgICAgICAgICAgICAgICAgICAgICAgIE1BQ0hfTVNHX1RZUEVfUE9S VF9TRU5EX09OQ0UpKQorICAgICAgICAgICAgYnJlYWs7CiAKIAkJLyogbXVzdCBibG9jayB3YWl0 aW5nIGZvciBxdWV1ZSB0byBjbGVhciAqLwogCkBAIC0yNjMsNDUgKzI3Niw0OSBAQCBpcGNfbXF1 ZXVlX3NlbmQoCiAJCWNvdW50ZXIoY19pcGNfbXF1ZXVlX3NlbmRfYmxvY2srKyk7CiAJCXRocmVh ZF9ibG9jayh0aHJlYWRfbm9fY29udGludWF0aW9uKTsKIAkJaXBfbG9jayhwb3J0KTsKLQorICAK IAkJLyogd2h5IGRpZCB3ZSB3YWtlIHVwPyAqLwogCi0JCWlmIChzZWxmLT5pdGhfc3RhdGUgPT0g TUFDSF9NU0dfU1VDQ0VTUykKLQkJCWNvbnRpbnVlOwotCQlhc3NlcnQoc2VsZi0+aXRoX3N0YXRl ID09IE1BQ0hfU0VORF9JTl9QUk9HUkVTUyk7CisgICAgICAgIGlmIChzZWxmLT5pdGhfc3RhdGUg PT0gTUFDSF9NU0dfU1VDQ0VTUykgeworICAgICAgICAgICAgc2VsZi0+aXRoX3N0YXRlID0gTUFD SF9NU0dfU1VDQ0VTUzsgLy8gdmV5YSB0ZW1peiBkdXJ1bSBzxLFmxLFybGFtYXPEsQorICAgICAg ICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0KHNlbGYtPml0aF9zdGF0 ZSA9PSBNQUNIX1NFTkRfSU5fUFJPR1JFU1MpOwogCi0JCS8qIHRha2Ugb3Vyc2VsdmVzIG9mZiBi bG9ja2VkIHF1ZXVlICovCisgICAgICAgIC8qIHRha2Ugb3Vyc2VsdmVzIG9mZiBibG9ja2VkIHF1 ZXVlIHVuZGVyIHBvcnQgbG9jayAqLworICAgICAgICBpcGNfdGhyZWFkX3JtcXVldWUoJnBvcnQt PmlwX2Jsb2NrZWQsIHNlbGYpOworICAgICAgICAKKyAgICAgICAgLyogW0RFRkVOU0lWRV06IENs ZWFyIHN0YXRlIHRvIHByZXZlbnQgc3RhbGUgc3RhdHVzIHJldXNlICovCisgICAgICAgIHNlbGYt Pml0aF9zdGF0ZSA9IE1BQ0hfTVNHX1NVQ0NFU1M7CiAKLQkJaXBjX3RocmVhZF9ybXF1ZXVlKCZw b3J0LT5pcF9ibG9ja2VkLCBzZWxmKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogIFRocmVhZCB3 YWtldXAtcmVhc29uIGZpZWxkIHRlbGxzIHVzIHdoeQorICAgICAgICAgKiAgdGhlIHdhaXQgd2Fz IGludGVycnVwdGVkLgorICAgICAgICAgKi8KIAotCQkvKgotCQkgKglUaHJlYWQgd2FrZXVwLXJl YXNvbiBmaWVsZCB0ZWxscyB1cyB3aHkKLQkJICoJdGhlIHdhaXQgd2FzIGludGVycnVwdGVkLgot CQkgKi8KKyAgICAgICAgc3dpdGNoIChzZWxmLT5pdGhfd2FpdF9yZXN1bHQpIHsKKyAgICAgICAg ICAgIGNhc2UgVEhSRUFEX0lOVEVSUlVQVEVEOgorICAgICAgICAgICAgLyogc2VuZCB3YXMgaW50 ZXJydXB0ZWQgLSBnaXZlIHVwICovCiAKLQkJc3dpdGNoIChzZWxmLT5pdGhfd2FpdF9yZXN1bHQp IHsKLQkJICAgIGNhc2UgVEhSRUFEX0lOVEVSUlVQVEVEOgotCQkJLyogc2VuZCB3YXMgaW50ZXJy dXB0ZWQgLSBnaXZlIHVwICovCisgICAgICAgICAgICBpcF91bmxvY2socG9ydCk7CisgICAgICAg ICAgICByZXR1cm4gTUFDSF9TRU5EX0lOVEVSUlVQVEVEOwogCi0JCQlpcF91bmxvY2socG9ydCk7 Ci0JCQlyZXR1cm4gTUFDSF9TRU5EX0lOVEVSUlVQVEVEOworICAgICAgICAgICAgY2FzZSBUSFJF QURfVElNRURfT1VUOgorICAgICAgICAgICAgLyogdGltZW91dCBleHBpcmVkICovCiAKLQkJICAg IGNhc2UgVEhSRUFEX1RJTUVEX09VVDoKLQkJCS8qIHRpbWVvdXQgZXhwaXJlZCAqLwotCi0JCQlh c3NlcnQob3B0aW9uICYgTUFDSF9TRU5EX1RJTUVPVVQpOwotCQkJdGltZV9vdXQgPSAwOwotCQkJ YnJlYWs7CisgICAgICAgICAgICBhc3NlcnQob3B0aW9uICYgTUFDSF9TRU5EX1RJTUVPVVQpOwor ICAgICAgICAgICAgdGltZV9vdXQgPSAwOworICAgICAgICAgICAgYnJlYWs7CiAKLQkJICAgIGNh c2UgVEhSRUFEX1JFU1RBUlQ6Ci0JCSAgICBkZWZhdWx0OgorICAgICAgICAgICAgY2FzZSBUSFJF QURfUkVTVEFSVDoKKyAgICAgICAgICAgIGRlZmF1bHQ6CiAjaWYgTUFDSF9BU1NFUlQKLQkJCWFz c2VydCghImlwY19tcXVldWVfc2VuZCIpOworICAgICAgICAgICAgYXNzZXJ0KCEiaXBjX21xdWV1 ZV9zZW5kOiB1bmV4cGVjdGVkIHRocmVhZCB3YWtldXAgcmVzdWx0Iik7CiAjZWxzZQotCQkJcGFu aWMoImlwY19tcXVldWVfc2VuZCIpOworICAgICAgICAgICAgcGFuaWMoImlwY19tcXVldWVfc2Vu ZCIpOwogI2VuZGlmCi0JCX0KLQl9CisgICAgICAgIH0KKyAgICB9CiAKIAlpZiAoa21zZy0+aWtt X2hlYWRlci5tc2doX2JpdHMgJiBNQUNIX01TR0hfQklUU19DSVJDVUxBUikgewogCQlpcF91bmxv Y2socG9ydCk7Cg== --000000000000e25cb406575d0bd5--