<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ubus/tests/fuzz, branch master</title>
<subtitle>OpenWrt system message/RPC bus</subtitle>
<id>https://git-03.infra.openwrt.org/project/ubus/atom?h=master</id>
<link rel='self' href='https://git-03.infra.openwrt.org/project/ubus/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/project/ubus/'/>
<updated>2026-09-25T07:46:40Z</updated>
<entry>
<title>tests/fuzz: use size of blob_attr, not of a pointer, in length guard</title>
<updated>2026-09-25T07:46:40Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2026-07-17T19:44:54Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/project/ubus/commit/?id=b27014cf7978cd797d3f7933299b9d295e338178'/>
<id>urn:sha1:b27014cf7978cd797d3f7933299b9d295e338178</id>
<content type='text'>
_ubus_parse_msg() guarded against short input with
sizeof(struct blob_attr *), the size of a pointer, instead of
sizeof(struct blob_attr), the header it is about to dereference. The
two happen to differ (8 vs 4 bytes on LP64), so the harness skipped
valid 4- to 7-byte messages that the real parser accepts. Compare
against the size of the structure itself.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>tests/fuzz: fix out-of-bounds read in header validation harness</title>
<updated>2026-09-25T07:46:40Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2026-07-17T19:44:24Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/project/ubus/commit/?id=3930745d8593bb9dffb3d0755affcdefb37585e9'/>
<id>urn:sha1:3930745d8593bb9dffb3d0755affcdefb37585e9</id>
<content type='text'>
_ubus_validate_hdr() passed the input straight to ubus_validate_hdr()
whenever size was not greater than sizeof(struct ubus_msghdr). That
condition is backwards and too small: ubus_validate_hdr() dereferences
the struct blob_attr located immediately after the header, so the
harness needs at least sizeof(ubus_msghdr) + sizeof(blob_attr) bytes.
An 8-byte input (exactly the header size) reached the validator and
read blob_raw_len() one blob_attr past the end of the buffer.

Require the full header plus the trailing blob_attr before validating.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>fix blob parsing vulnerability by using blob_parse_untrusted</title>
<updated>2019-12-19T18:53:25Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2019-12-19T10:25:56Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/project/ubus/commit/?id=a1523d76b016ed46501f61e38ad38999d6c66f52'/>
<id>urn:sha1:a1523d76b016ed46501f61e38ad38999d6c66f52</id>
<content type='text'>
blob_parse expects blobs from trusted inputs, but it can be supplied
with possibly malicious blobs from untrusted inputs as well, which might
lead to undefined behaviour and/or crash of ubus daemon. In order to
prevent such conditions, switch to blob_parse_untrusted which should
hopefully handle such untrusted inputs appropriately.

Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
</content>
</entry>
<entry>
<title>add fuzzer and cram based unit tests</title>
<updated>2019-12-16T22:39:16Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2019-12-12T22:24:15Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/project/ubus/commit/?id=08f17c87a000cc74551e1539d1916c7bfd84ae68'/>
<id>urn:sha1:08f17c87a000cc74551e1539d1916c7bfd84ae68</id>
<content type='text'>
For improved QA etc.

Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
</content>
</entry>
</feed>
