gpsd before commit dc966aa contains a heap-based out-of-bounds write vulnerability in the drivers/driver_nmea2000.c file. The hnd_129540 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_name": "gpsd",
"binary_version": "3.15-2build1"
},
{
"binary_name": "gpsd-clients",
"binary_version": "3.15-2build1"
},
{
"binary_name": "libgps22",
"binary_version": "3.15-2build1"
},
{
"binary_name": "libqgpsmm22",
"binary_version": "3.15-2build1"
},
{
"binary_name": "python-gps",
"binary_version": "3.15-2build1"
}
]
}{
"binaries": [
{
"binary_name": "gpsd",
"binary_version": "3.17-5"
},
{
"binary_name": "gpsd-clients",
"binary_version": "3.17-5"
},
{
"binary_name": "libgps23",
"binary_version": "3.17-5"
},
{
"binary_name": "libqgpsmm23",
"binary_version": "3.17-5"
},
{
"binary_name": "python-gps",
"binary_version": "3.17-5"
}
]
}{
"binaries": [
{
"binary_name": "gpsd",
"binary_version": "3.20-8ubuntu0.4"
},
{
"binary_name": "gpsd-clients",
"binary_version": "3.20-8ubuntu0.4"
},
{
"binary_name": "libgps26",
"binary_version": "3.20-8ubuntu0.4"
},
{
"binary_name": "libqgpsmm26",
"binary_version": "3.20-8ubuntu0.4"
},
{
"binary_name": "python3-gps",
"binary_version": "3.20-8ubuntu0.4"
}
]
}{
"availability": "No subscription required",
"binaries": [
{
"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": "libgps28",
"binary_version": "3.22-4ubuntu2.1"
},
{
"binary_name": "libqgpsmm28",
"binary_version": "3.22-4ubuntu2.1"
},
{
"binary_name": "python3-gps",
"binary_version": "3.22-4ubuntu2.1"
}
]
}{
"availability": "No subscription required",
"binaries": [
{
"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": "libgps30t64",
"binary_version": "3.25-3ubuntu3.2"
},
{
"binary_name": "libqgpsmm30t64",
"binary_version": "3.25-3ubuntu3.2"
},
{
"binary_name": "python3-gps",
"binary_version": "3.25-3ubuntu3.2"
}
]
}{
"availability": "No subscription required",
"binaries": [
{
"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": "libgps30t64",
"binary_version": "3.25-5ubuntu1.25.10.1"
},
{
"binary_name": "libqgpsmm30t64",
"binary_version": "3.25-5ubuntu1.25.10.1"
},
{
"binary_name": "python3-gps",
"binary_version": "3.25-5ubuntu1.25.10.1"
}
]
}{
"availability": "No subscription required",
"binaries": [
{
"binary_name": "gpsd",
"binary_version": "3.27-1.1ubuntu1"
},
{
"binary_name": "gpsd-clients",
"binary_version": "3.27-1.1ubuntu1"
},
{
"binary_name": "gpsd-tools",
"binary_version": "3.27-1.1ubuntu1"
},
{
"binary_name": "libgps32",
"binary_version": "3.27-1.1ubuntu1"
},
{
"binary_name": "libqgpsmm32",
"binary_version": "3.27-1.1ubuntu1"
},
{
"binary_name": "python3-gps",
"binary_version": "3.27-1.1ubuntu1"
}
]
}