Dear OpenBSD team,

I would like to bring your attention to the following bug report from
FreeBSD, where I have ported and imported the umb(4) driver recently:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=284906

The bug report mentions:

> if_umb.c calls umb_getinfobuf() with offs and size taken from messages
> sent by the USB device. The "inlen >= offs + sz" check isn't
> sufficient due to possible integer wrap. This can allow a broken or
> malicious USB device to cause a buffer overflow.

From my reading of the current version of the umb(4) driver in OpenBSD,
ISTM that you are vulnerable to this issue as well.

At the very least I would suggest to keep inlen and len unsigned
throughout, and then I think there should be a check for integer overflow
in umb_getinfobuf() as suggested.

Thoughts?

HTH,
-- 
khorben

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to