bson before 0.8 incorrectly uses int rather than sizet for many variables, parameters, and return values. In particular, the bsonensure_space() parameter bytesNeeded could have an integer overflow via properly constructed bson input.
{
"binaries": [
{
"binary_version": "0.2.52.5ubuntu0.5",
"binary_name": "libwhoopsie-dev"
},
{
"binary_version": "0.2.52.5ubuntu0.5",
"binary_name": "libwhoopsie0"
},
{
"binary_version": "0.2.52.5ubuntu0.5",
"binary_name": "whoopsie"
}
],
"availability": "No subscription required"
}{
"binaries": [
{
"binary_version": "1.9.21-1build1",
"binary_name": "libduo-dev"
},
{
"binary_version": "1.9.21-1build1",
"binary_name": "libduo3"
},
{
"binary_version": "1.9.21-1build1",
"binary_name": "libpam-duo"
},
{
"binary_version": "1.9.21-1build1",
"binary_name": "login-duo"
}
]
}{
"binaries": [
{
"binary_version": "1.11.3-1build1",
"binary_name": "libduo-dev"
},
{
"binary_version": "1.11.3-1build1",
"binary_name": "libduo3"
},
{
"binary_version": "1.11.3-1build1",
"binary_name": "libpam-duo"
},
{
"binary_version": "1.11.3-1build1",
"binary_name": "login-duo"
}
]
}{
"binaries": [
{
"binary_version": "1.11.3-1.1build2",
"binary_name": "libduo-dev"
},
{
"binary_version": "1.11.3-1.1build2",
"binary_name": "libduo3t64"
},
{
"binary_version": "1.11.3-1.1build2",
"binary_name": "libpam-duo"
},
{
"binary_version": "1.11.3-1.1build2",
"binary_name": "login-duo"
}
]
}