gpsd before commit dc966aa contains a heap-based out-of-bounds write vulnerability in the drivers/drivernmea2000.c file. The hnd129540 function, which handles NMEA2000 PGN 129540 (GNSS Satellites in View) packets, fails to validate the user-supplied satellite count against the size of the skyview array (184 elements). This allows an attacker to write beyond the bounds of the array by providing a satellite count up to 255, leading to memory corruption, Denial of Service (DoS), and potentially arbitrary code execution.
{
"binaries": [
{
"binary_version": "3.15-2build1",
"binary_name": "gpsd"
},
{
"binary_version": "3.15-2build1",
"binary_name": "gpsd-clients"
},
{
"binary_version": "3.15-2build1",
"binary_name": "libgps-dev"
},
{
"binary_version": "3.15-2build1",
"binary_name": "libgps22"
},
{
"binary_version": "3.15-2build1",
"binary_name": "libqgpsmm-dev"
},
{
"binary_version": "3.15-2build1",
"binary_name": "libqgpsmm22"
},
{
"binary_version": "3.15-2build1",
"binary_name": "python-gps"
}
]
}{
"binaries": [
{
"binary_version": "3.17-5",
"binary_name": "gpsd"
},
{
"binary_version": "3.17-5",
"binary_name": "gpsd-clients"
},
{
"binary_version": "3.17-5",
"binary_name": "libgps-dev"
},
{
"binary_version": "3.17-5",
"binary_name": "libgps23"
},
{
"binary_version": "3.17-5",
"binary_name": "libqgpsmm-dev"
},
{
"binary_version": "3.17-5",
"binary_name": "libqgpsmm23"
},
{
"binary_version": "3.17-5",
"binary_name": "python-gps"
}
]
}{
"binaries": [
{
"binary_version": "3.20-8ubuntu0.4",
"binary_name": "gpsd"
},
{
"binary_version": "3.20-8ubuntu0.4",
"binary_name": "gpsd-clients"
},
{
"binary_version": "3.20-8ubuntu0.4",
"binary_name": "libgps-dev"
},
{
"binary_version": "3.20-8ubuntu0.4",
"binary_name": "libgps26"
},
{
"binary_version": "3.20-8ubuntu0.4",
"binary_name": "libqgpsmm-dev"
},
{
"binary_version": "3.20-8ubuntu0.4",
"binary_name": "libqgpsmm26"
},
{
"binary_version": "3.20-8ubuntu0.4",
"binary_name": "python3-gps"
}
]
}{
"binaries": [
{
"binary_version": "3.22-4ubuntu2.1",
"binary_name": "gpsd"
},
{
"binary_version": "3.22-4ubuntu2.1",
"binary_name": "gpsd-clients"
},
{
"binary_version": "3.22-4ubuntu2.1",
"binary_name": "gpsd-tools"
},
{
"binary_version": "3.22-4ubuntu2.1",
"binary_name": "libgps-dev"
},
{
"binary_version": "3.22-4ubuntu2.1",
"binary_name": "libgps28"
},
{
"binary_version": "3.22-4ubuntu2.1",
"binary_name": "libqgpsmm-dev"
},
{
"binary_version": "3.22-4ubuntu2.1",
"binary_name": "libqgpsmm28"
},
{
"binary_version": "3.22-4ubuntu2.1",
"binary_name": "python3-gps"
}
],
"availability": "No subscription required"
}{
"binaries": [
{
"binary_version": "3.25-3ubuntu3.2",
"binary_name": "gpsd"
},
{
"binary_version": "3.25-3ubuntu3.2",
"binary_name": "gpsd-clients"
},
{
"binary_version": "3.25-3ubuntu3.2",
"binary_name": "gpsd-tools"
},
{
"binary_version": "3.25-3ubuntu3.2",
"binary_name": "libgps-dev"
},
{
"binary_version": "3.25-3ubuntu3.2",
"binary_name": "libgps30t64"
},
{
"binary_version": "3.25-3ubuntu3.2",
"binary_name": "libqgpsmm-dev"
},
{
"binary_version": "3.25-3ubuntu3.2",
"binary_name": "libqgpsmm30t64"
},
{
"binary_version": "3.25-3ubuntu3.2",
"binary_name": "python3-gps"
}
],
"availability": "No subscription required"
}{
"binaries": [
{
"binary_version": "3.25-5ubuntu1.25.10.1",
"binary_name": "gpsd"
},
{
"binary_version": "3.25-5ubuntu1.25.10.1",
"binary_name": "gpsd-clients"
},
{
"binary_version": "3.25-5ubuntu1.25.10.1",
"binary_name": "gpsd-tools"
},
{
"binary_version": "3.25-5ubuntu1.25.10.1",
"binary_name": "libgps-dev"
},
{
"binary_version": "3.25-5ubuntu1.25.10.1",
"binary_name": "libgps30t64"
},
{
"binary_version": "3.25-5ubuntu1.25.10.1",
"binary_name": "libqgpsmm-dev"
},
{
"binary_version": "3.25-5ubuntu1.25.10.1",
"binary_name": "libqgpsmm30t64"
},
{
"binary_version": "3.25-5ubuntu1.25.10.1",
"binary_name": "python3-gps"
}
],
"availability": "No subscription required"
}