Any project that parses untrusted Protocol Buffers data containing an arbitrary number of nested groups / series of SGROUP tags can corrupted by exceeding the stack limit i.e. StackOverflow. Parsing nested groups as unknown fields with DiscardUnknownFieldsParser or Java Protobuf Lite parser, or against Protobuf map fields, creates unbounded recursions that can be abused by an attacker.
{
"availability": "No subscription required",
"binaries": [
{
"binary_version": "3.12.4-1ubuntu7.22.04.2",
"binary_name": "elpa-protobuf-mode"
},
{
"binary_version": "3.12.4-1ubuntu7.22.04.2",
"binary_name": "libprotobuf-dev"
},
{
"binary_version": "3.12.4-1ubuntu7.22.04.2",
"binary_name": "libprotobuf-java"
},
{
"binary_version": "3.12.4-1ubuntu7.22.04.2",
"binary_name": "libprotobuf-lite23"
},
{
"binary_version": "3.12.4-1ubuntu7.22.04.2",
"binary_name": "libprotobuf23"
},
{
"binary_version": "3.12.4-1ubuntu7.22.04.2",
"binary_name": "libprotoc-dev"
},
{
"binary_version": "3.12.4-1ubuntu7.22.04.2",
"binary_name": "libprotoc23"
},
{
"binary_version": "3.12.4-1ubuntu7.22.04.2",
"binary_name": "protobuf-compiler"
},
{
"binary_version": "3.12.4-1ubuntu7.22.04.2",
"binary_name": "python3-protobuf"
},
{
"binary_version": "3.12.4-1ubuntu7.22.04.2",
"binary_name": "ruby-google-protobuf"
}
]
}{
"availability": "No subscription required",
"binaries": [
{
"binary_version": "3.21.12-8.2ubuntu0.1",
"binary_name": "elpa-protobuf-mode"
},
{
"binary_version": "3.21.12-8.2ubuntu0.1",
"binary_name": "libprotobuf-dev"
},
{
"binary_version": "3.21.12-8.2ubuntu0.1",
"binary_name": "libprotobuf-java"
},
{
"binary_version": "3.21.12-8.2ubuntu0.1",
"binary_name": "libprotobuf-lite32t64"
},
{
"binary_version": "3.21.12-8.2ubuntu0.1",
"binary_name": "libprotobuf32t64"
},
{
"binary_version": "3.21.12-8.2ubuntu0.1",
"binary_name": "libprotoc-dev"
},
{
"binary_version": "3.21.12-8.2ubuntu0.1",
"binary_name": "libprotoc32t64"
},
{
"binary_version": "3.21.12-8.2ubuntu0.1",
"binary_name": "php-google-protobuf"
},
{
"binary_version": "3.21.12-8.2ubuntu0.1",
"binary_name": "protobuf-compiler"
},
{
"binary_version": "3.21.12-8.2ubuntu0.1",
"binary_name": "python3-protobuf"
},
{
"binary_version": "3.21.12-8.2ubuntu0.1",
"binary_name": "ruby-google-protobuf"
}
]
}{
"binaries": [
{
"binary_version": "2.5.0-9ubuntu1+esm1",
"binary_name": "libprotobuf-dev"
},
{
"binary_version": "2.5.0-9ubuntu1+esm1",
"binary_name": "libprotobuf-java"
},
{
"binary_version": "2.5.0-9ubuntu1+esm1",
"binary_name": "libprotobuf-lite8"
},
{
"binary_version": "2.5.0-9ubuntu1+esm1",
"binary_name": "libprotobuf8"
},
{
"binary_version": "2.5.0-9ubuntu1+esm1",
"binary_name": "libprotoc-dev"
},
{
"binary_version": "2.5.0-9ubuntu1+esm1",
"binary_name": "libprotoc8"
},
{
"binary_version": "2.5.0-9ubuntu1+esm1",
"binary_name": "protobuf-compiler"
},
{
"binary_version": "2.5.0-9ubuntu1+esm1",
"binary_name": "python-protobuf"
}
]
}{
"availability": "Available with Ubuntu Pro (Infra-only): https://ubuntu.com/pro",
"binaries": [
{
"binary_version": "2.6.1-1.3ubuntu0.1~esm4",
"binary_name": "libprotobuf-dev"
},
{
"binary_version": "2.6.1-1.3ubuntu0.1~esm4",
"binary_name": "libprotobuf-java"
},
{
"binary_version": "2.6.1-1.3ubuntu0.1~esm4",
"binary_name": "libprotobuf-lite9v5"
},
{
"binary_version": "2.6.1-1.3ubuntu0.1~esm4",
"binary_name": "libprotobuf9v5"
},
{
"binary_version": "2.6.1-1.3ubuntu0.1~esm4",
"binary_name": "libprotoc-dev"
},
{
"binary_version": "2.6.1-1.3ubuntu0.1~esm4",
"binary_name": "libprotoc9v5"
},
{
"binary_version": "2.6.1-1.3ubuntu0.1~esm4",
"binary_name": "protobuf-compiler"
},
{
"binary_version": "2.6.1-1.3ubuntu0.1~esm4",
"binary_name": "python-protobuf"
}
]
}{
"availability": "Available with Ubuntu Pro (Infra-only): https://ubuntu.com/pro",
"binaries": [
{
"binary_version": "3.0.0-9.1ubuntu1.1+esm3",
"binary_name": "libprotobuf-dev"
},
{
"binary_version": "3.0.0-9.1ubuntu1.1+esm3",
"binary_name": "libprotobuf-java"
},
{
"binary_version": "3.0.0-9.1ubuntu1.1+esm3",
"binary_name": "libprotobuf-lite10"
},
{
"binary_version": "3.0.0-9.1ubuntu1.1+esm3",
"binary_name": "libprotobuf10"
},
{
"binary_version": "3.0.0-9.1ubuntu1.1+esm3",
"binary_name": "libprotoc-dev"
},
{
"binary_version": "3.0.0-9.1ubuntu1.1+esm3",
"binary_name": "libprotoc10"
},
{
"binary_version": "3.0.0-9.1ubuntu1.1+esm3",
"binary_name": "protobuf-compiler"
},
{
"binary_version": "3.0.0-9.1ubuntu1.1+esm3",
"binary_name": "python-protobuf"
},
{
"binary_version": "3.0.0-9.1ubuntu1.1+esm3",
"binary_name": "python3-protobuf"
}
]
}{
"availability": "Available with Ubuntu Pro (Infra-only): https://ubuntu.com/pro",
"binaries": [
{
"binary_version": "3.6.1.3-2ubuntu5.2+esm2",
"binary_name": "libprotobuf-dev"
},
{
"binary_version": "3.6.1.3-2ubuntu5.2+esm2",
"binary_name": "libprotobuf-java"
},
{
"binary_version": "3.6.1.3-2ubuntu5.2+esm2",
"binary_name": "libprotobuf-lite17"
},
{
"binary_version": "3.6.1.3-2ubuntu5.2+esm2",
"binary_name": "libprotobuf17"
},
{
"binary_version": "3.6.1.3-2ubuntu5.2+esm2",
"binary_name": "libprotoc-dev"
},
{
"binary_version": "3.6.1.3-2ubuntu5.2+esm2",
"binary_name": "libprotoc17"
},
{
"binary_version": "3.6.1.3-2ubuntu5.2+esm2",
"binary_name": "protobuf-compiler"
},
{
"binary_version": "3.6.1.3-2ubuntu5.2+esm2",
"binary_name": "python-protobuf"
},
{
"binary_version": "3.6.1.3-2ubuntu5.2+esm2",
"binary_name": "python3-protobuf"
},
{
"binary_version": "3.6.1.3-2ubuntu5.2+esm2",
"binary_name": "ruby-google-protobuf"
}
]
}