A malformed Bluetooth Classic SDP attribute can trigger a reachable assertion in Zephyr's SDP parser. In subsys/bluetooth/host/classic/sdp.c, btsdpparseattribute() accepts an input buffer once it contains the 1-byte attribute type and 2-byte attribute id, but then unconditionally pulls an additional byte for the value type without verifying that the byte is present. A truncated 3-byte attribute (for example 09 00 09) therefore reaches netbufsimplepull() with insufficient remaining length, triggering the __ASSERTNOMSG(buf->len >= len) check and a kernel panic in assert-enabled builds (denial of service). In builds where assertions are disabled, parsing may continue past the end of the available buffer, leading to an out-of-bounds read and undefined behavior.
{
"binaries": [
{
"binary_version": "3.1.2-1build1",
"binary_name": "libzephyr4"
},
{
"binary_version": "3.1.2-1build1",
"binary_name": "libzephyr4-krb5"
},
{
"binary_version": "3.1.2-1build1",
"binary_name": "zephyr-clients"
},
{
"binary_version": "3.1.2-1build1",
"binary_name": "zephyr-server"
},
{
"binary_version": "3.1.2-1build1",
"binary_name": "zephyr-server-krb5"
}
]
}{
"binaries": [
{
"binary_version": "3.1.2-1build2",
"binary_name": "libzephyr4"
},
{
"binary_version": "3.1.2-1build2",
"binary_name": "libzephyr4-krb5"
},
{
"binary_version": "3.1.2-1build2",
"binary_name": "zephyr-clients"
},
{
"binary_version": "3.1.2-1build2",
"binary_name": "zephyr-server"
},
{
"binary_version": "3.1.2-1build2",
"binary_name": "zephyr-server-krb5"
}
]
}{
"binaries": [
{
"binary_version": "3.1.2-1build3",
"binary_name": "libzephyr4"
},
{
"binary_version": "3.1.2-1build3",
"binary_name": "libzephyr4-krb5"
},
{
"binary_version": "3.1.2-1build3",
"binary_name": "zephyr-clients"
},
{
"binary_version": "3.1.2-1build3",
"binary_name": "zephyr-server"
},
{
"binary_version": "3.1.2-1build3",
"binary_name": "zephyr-server-krb5"
}
]
}{
"binaries": [
{
"binary_version": "3.1.2-1build3",
"binary_name": "libzephyr4"
},
{
"binary_version": "3.1.2-1build3",
"binary_name": "libzephyr4-krb5"
},
{
"binary_version": "3.1.2-1build3",
"binary_name": "zephyr-clients"
},
{
"binary_version": "3.1.2-1build3",
"binary_name": "zephyr-server"
},
{
"binary_version": "3.1.2-1build3",
"binary_name": "zephyr-server-krb5"
}
]
}{
"binaries": [
{
"binary_version": "3.1.2-1.1build1",
"binary_name": "libzephyr4"
},
{
"binary_version": "3.1.2-1.1build1",
"binary_name": "libzephyr4-krb5"
},
{
"binary_version": "3.1.2-1.1build1",
"binary_name": "zephyr-clients"
},
{
"binary_version": "3.1.2-1.1build1",
"binary_name": "zephyr-server"
},
{
"binary_version": "3.1.2-1.1build1",
"binary_name": "zephyr-server-krb5"
}
]
}{
"binaries": [
{
"binary_version": "3.1.2-1.1build1",
"binary_name": "libzephyr4"
},
{
"binary_version": "3.1.2-1.1build1",
"binary_name": "libzephyr4-krb5"
},
{
"binary_version": "3.1.2-1.1build1",
"binary_name": "zephyr-clients"
},
{
"binary_version": "3.1.2-1.1build1",
"binary_name": "zephyr-server"
},
{
"binary_version": "3.1.2-1.1build1",
"binary_name": "zephyr-server-krb5"
}
]
}{
"binaries": [
{
"binary_version": "3.1.2-4",
"binary_name": "libzephyr4"
},
{
"binary_version": "3.1.2-4",
"binary_name": "libzephyr4-krb5"
},
{
"binary_version": "3.1.2-4",
"binary_name": "zephyr-clients"
},
{
"binary_version": "3.1.2-4",
"binary_name": "zephyr-server"
},
{
"binary_version": "3.1.2-4",
"binary_name": "zephyr-server-krb5"
}
]
}