In the Linux kernel, the following vulnerability has been resolved:
media: v4l2-dv-timings.c: fix too strict blanking sanity checks
Sanity checks were added to verify the v4l2bttimings blanking fields in order to avoid integer overflows when userspace passes weird values.
But that assumed that userspace would correctly fill in the front porch, backporch and sync values, but sometimes all you know is the total blanking, which is then assigned to just one of these fields.
And that can fail with these checks.
So instead set a maximum for the total horizontal and vertical blanking and check that each field remains below that.
That is still sufficient to avoid integer overflows, but it also allows for more flexibility in how userspace fills in these fields.
[
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"55164845505937164073312492451268952517",
"259360007680926913644079619342722967724",
"126692221774240465692008525317756816544",
"69164972677419014940553782638773398995",
"289596351781575252184041980463042747690",
"311755700945322801236645702283898545778",
"262203089117455287595061942210111898538",
"123857164682405855696798650898984225002",
"232106759265095900075901180284902373801",
"87186282690157672821661343360113172711",
"317377435565282721975003857756426193866",
"314097317042825353396934133530141256748",
"305452558972456389917805171319089484369",
"192511037506738574085974968365549446798",
"241062398826369397876636144137525355479"
]
},
"target": {
"file": "drivers/media/v4l2-core/v4l2-dv-timings.c"
},
"id": "CVE-2022-48987-151b1edf",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2572ab14b73aa45b6ae7e4c089ccf119fed5cf89",
"signature_type": "Line"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"function_hash": "24552138738169863162938895238603598896",
"length": 1323.0
},
"target": {
"function": "v4l2_valid_dv_timings",
"file": "drivers/media/v4l2-core/v4l2-dv-timings.c"
},
"id": "CVE-2022-48987-4ad08ad8",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5eef2141776da02772c44ec406d6871a790761ee",
"signature_type": "Function"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"55164845505937164073312492451268952517",
"259360007680926913644079619342722967724",
"126692221774240465692008525317756816544",
"69164972677419014940553782638773398995",
"289596351781575252184041980463042747690",
"311755700945322801236645702283898545778",
"262203089117455287595061942210111898538",
"123857164682405855696798650898984225002",
"232106759265095900075901180284902373801",
"87186282690157672821661343360113172711",
"317377435565282721975003857756426193866",
"314097317042825353396934133530141256748",
"305452558972456389917805171319089484369",
"192511037506738574085974968365549446798",
"241062398826369397876636144137525355479"
]
},
"target": {
"file": "drivers/media/v4l2-core/v4l2-dv-timings.c"
},
"id": "CVE-2022-48987-4c1baa38",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5eef2141776da02772c44ec406d6871a790761ee",
"signature_type": "Line"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"function_hash": "24552138738169863162938895238603598896",
"length": 1323.0
},
"target": {
"function": "v4l2_valid_dv_timings",
"file": "drivers/media/v4l2-core/v4l2-dv-timings.c"
},
"id": "CVE-2022-48987-4d804d16",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4afc77068e36cee45b39d4fdc7513de26980f72c",
"signature_type": "Function"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"55164845505937164073312492451268952517",
"259360007680926913644079619342722967724",
"126692221774240465692008525317756816544",
"69164972677419014940553782638773398995",
"289596351781575252184041980463042747690",
"311755700945322801236645702283898545778",
"262203089117455287595061942210111898538",
"123857164682405855696798650898984225002",
"232106759265095900075901180284902373801",
"87186282690157672821661343360113172711",
"317377435565282721975003857756426193866",
"314097317042825353396934133530141256748",
"305452558972456389917805171319089484369",
"192511037506738574085974968365549446798",
"241062398826369397876636144137525355479"
]
},
"target": {
"file": "drivers/media/v4l2-core/v4l2-dv-timings.c"
},
"id": "CVE-2022-48987-68c863c6",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a2b56627c0d13009e02f6f2c0206c0451ed19a0e",
"signature_type": "Line"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"55164845505937164073312492451268952517",
"259360007680926913644079619342722967724",
"126692221774240465692008525317756816544",
"69164972677419014940553782638773398995",
"289596351781575252184041980463042747690",
"311755700945322801236645702283898545778",
"262203089117455287595061942210111898538",
"123857164682405855696798650898984225002",
"232106759265095900075901180284902373801",
"87186282690157672821661343360113172711",
"317377435565282721975003857756426193866",
"314097317042825353396934133530141256748",
"305452558972456389917805171319089484369",
"192511037506738574085974968365549446798",
"241062398826369397876636144137525355479"
]
},
"target": {
"file": "drivers/media/v4l2-core/v4l2-dv-timings.c"
},
"id": "CVE-2022-48987-7375b44b",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0d73b49c4037199472b29574ae21c21aef493971",
"signature_type": "Line"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"55164845505937164073312492451268952517",
"259360007680926913644079619342722967724",
"126692221774240465692008525317756816544",
"69164972677419014940553782638773398995",
"289596351781575252184041980463042747690",
"311755700945322801236645702283898545778",
"262203089117455287595061942210111898538",
"123857164682405855696798650898984225002",
"232106759265095900075901180284902373801",
"87186282690157672821661343360113172711",
"317377435565282721975003857756426193866",
"314097317042825353396934133530141256748",
"305452558972456389917805171319089484369",
"192511037506738574085974968365549446798",
"241062398826369397876636144137525355479"
]
},
"target": {
"file": "drivers/media/v4l2-core/v4l2-dv-timings.c"
},
"id": "CVE-2022-48987-8852fd9f",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4afc77068e36cee45b39d4fdc7513de26980f72c",
"signature_type": "Line"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"55164845505937164073312492451268952517",
"259360007680926913644079619342722967724",
"126692221774240465692008525317756816544",
"69164972677419014940553782638773398995",
"289596351781575252184041980463042747690",
"311755700945322801236645702283898545778",
"262203089117455287595061942210111898538",
"123857164682405855696798650898984225002",
"232106759265095900075901180284902373801",
"87186282690157672821661343360113172711",
"317377435565282721975003857756426193866",
"314097317042825353396934133530141256748",
"305452558972456389917805171319089484369",
"192511037506738574085974968365549446798",
"241062398826369397876636144137525355479"
]
},
"target": {
"file": "drivers/media/v4l2-core/v4l2-dv-timings.c"
},
"id": "CVE-2022-48987-89bec44a",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@32f01f0306a98629508f84d7ef0d1d037bc274a2",
"signature_type": "Line"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"function_hash": "24552138738169863162938895238603598896",
"length": 1323.0
},
"target": {
"function": "v4l2_valid_dv_timings",
"file": "drivers/media/v4l2-core/v4l2-dv-timings.c"
},
"id": "CVE-2022-48987-c7a198af",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d3d14cdf1c7ae2caa3e999bae95ba99e955fb7c3",
"signature_type": "Function"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"55164845505937164073312492451268952517",
"259360007680926913644079619342722967724",
"126692221774240465692008525317756816544",
"69164972677419014940553782638773398995",
"289596351781575252184041980463042747690",
"311755700945322801236645702283898545778",
"262203089117455287595061942210111898538",
"123857164682405855696798650898984225002",
"232106759265095900075901180284902373801",
"87186282690157672821661343360113172711",
"317377435565282721975003857756426193866",
"314097317042825353396934133530141256748",
"305452558972456389917805171319089484369",
"192511037506738574085974968365549446798",
"241062398826369397876636144137525355479"
]
},
"target": {
"file": "drivers/media/v4l2-core/v4l2-dv-timings.c"
},
"id": "CVE-2022-48987-d1e668bc",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d3d14cdf1c7ae2caa3e999bae95ba99e955fb7c3",
"signature_type": "Line"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"55164845505937164073312492451268952517",
"259360007680926913644079619342722967724",
"126692221774240465692008525317756816544",
"69164972677419014940553782638773398995",
"289596351781575252184041980463042747690",
"311755700945322801236645702283898545778",
"262203089117455287595061942210111898538",
"123857164682405855696798650898984225002",
"232106759265095900075901180284902373801",
"87186282690157672821661343360113172711",
"317377435565282721975003857756426193866",
"314097317042825353396934133530141256748",
"305452558972456389917805171319089484369",
"192511037506738574085974968365549446798",
"241062398826369397876636144137525355479"
]
},
"target": {
"file": "drivers/media/v4l2-core/v4l2-dv-timings.c"
},
"id": "CVE-2022-48987-d9dc02c1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6fb8bc29bfa80707994a63cc97e2f9920e0b0608",
"signature_type": "Line"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"function_hash": "24552138738169863162938895238603598896",
"length": 1323.0
},
"target": {
"function": "v4l2_valid_dv_timings",
"file": "drivers/media/v4l2-core/v4l2-dv-timings.c"
},
"id": "CVE-2022-48987-e0bdc9d6",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a2b56627c0d13009e02f6f2c0206c0451ed19a0e",
"signature_type": "Function"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"function_hash": "24552138738169863162938895238603598896",
"length": 1323.0
},
"target": {
"function": "v4l2_valid_dv_timings",
"file": "drivers/media/v4l2-core/v4l2-dv-timings.c"
},
"id": "CVE-2022-48987-e0db02ba",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@32f01f0306a98629508f84d7ef0d1d037bc274a2",
"signature_type": "Function"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"function_hash": "24552138738169863162938895238603598896",
"length": 1323.0
},
"target": {
"function": "v4l2_valid_dv_timings",
"file": "drivers/media/v4l2-core/v4l2-dv-timings.c"
},
"id": "CVE-2022-48987-e6c09a8e",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2572ab14b73aa45b6ae7e4c089ccf119fed5cf89",
"signature_type": "Function"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"function_hash": "24552138738169863162938895238603598896",
"length": 1323.0
},
"target": {
"function": "v4l2_valid_dv_timings",
"file": "drivers/media/v4l2-core/v4l2-dv-timings.c"
},
"id": "CVE-2022-48987-e91f2912",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6fb8bc29bfa80707994a63cc97e2f9920e0b0608",
"signature_type": "Function"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"function_hash": "24552138738169863162938895238603598896",
"length": 1323.0
},
"target": {
"function": "v4l2_valid_dv_timings",
"file": "drivers/media/v4l2-core/v4l2-dv-timings.c"
},
"id": "CVE-2022-48987-e9bbe24b",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0d73b49c4037199472b29574ae21c21aef493971",
"signature_type": "Function"
}
]