In the Linux kernel, the following vulnerability has been resolved:
soundwire: revisit driver bind/unbind and callbacks
In the SoundWire probe, we store a pointer from the driver ops into the 'slave' structure. This can lead to kernel oopses when unbinding codec drivers, e.g. with the following sequence to remove machine driver and codec driver.
/sbin/modprobe -r sndsocsofsdw /sbin/modprobe -r sndsoc_rt711
The full details can be found in the BugLink below, for reference the two following examples show different cases of driver ops/callbacks being invoked after the driver .remove().
kernel: BUG: kernel NULL pointer dereference, address: 0000000000000150 kernel: Workqueue: events cdnsupdateslavestatuswork [soundwirecadence] kernel: RIP: 0010:mutexlock+0x19/0x30 kernel: Call Trace: kernel: ? sdwhandleslavestatus+0x426/0xe00 [soundwirebus 94ff184bf398570c3f8ff7efe9e32529f532e4ae] kernel: ? newidlebalance+0x26a/0x400 kernel: ? cdnsupdateslavestatuswork+0x1e9/0x200 [soundwirecadence 1bcf98eebe5ba9833cd433323769ac923c9c6f82]
kernel: BUG: unable to handle page fault for address: ffffffffc07654c8 kernel: Workqueue: pm pmruntimework kernel: RIP: 0010:sdwbusprepclkstop+0x6f/0x160 [soundwirebus] kernel: Call Trace: kernel: <TASK> kernel: sdwcdnsclockstop+0xb5/0x1b0 [soundwirecadence 1bcf98eebe5ba9833cd433323769ac923c9c6f82] kernel: intelsuspendruntime+0x5f/0x120 [soundwireintel aca858f7c87048d3152a4a41bb68abb9b663a1dd] kernel: ? dpmsysfsremove+0x60/0x60
This was not detected earlier in Intel tests since the tests first remove the parent PCI device and shut down the bus. The sequence above is a corner case which keeps the bus operational but without a driver bound.
While trying to solve this kernel oopses, it became clear that the existing SoundWire bus does not deal well with the unbind case.
Commit 528be501b7d4a ("soundwire: sdwslave: add probecomplete structure and new fields") added a 'probed' status variable and a 'probecomplete' struct completion. This status is however not reset on remove and likewise the 'probe complete' is not re-initialized, so the bind/unbind/bind test cases would fail. The timeout used before the 'updatestatus' callback was also a bad idea in hindsight, there should really be no timing assumption as to if and when a driver is bound to a device.
An initial draft was based on devicelock() and deviceunlock() was tested. This proved too complicated, with deadlocks created during the suspend-resume sequences, which also use the same devicelock/unlock() as the bind/unbind sequences. On a CometLake device, a bad DSDT/BIOS caused spurious resumes and the use of devicelock() caused hangs during suspend. After multiple weeks or testing and painful reverse-engineering of deadlocks on different devices, we looked for alternatives that did not interfere with the device core.
A bus notifier was used successfully to keep track of DRIVERBOUND and DRIVERUNBIND events. This solved the bind-unbind-bind case in tests, but it can still be defeated with a theoretical corner case where the memory is freed by a .remove while the callback is in use. The notifier only helps make sure the driver callbacks are valid, but not that the memory allocated in probe remains valid while the callbacks are invoked.
This patch suggests the introduction of a new 'sdwdevlock' mutex protecting probe/remove and all driver callbacks. Since this mutex is 'local' to SoundWire only, it does not interfere with existing locks and does not create deadlocks. In addition, this patch removes the 'probecomplete' completion, instead we directly invoke the 'updatestatus' from the probe routine. That removes any sort of timing dependency and a much better support for the device/driver model, the driver could be bound before the bus started, or eons after the bus started and the hardware would be properly initialized in all cases.
BugLink: https://github.com/thesofproject/linux/is ---truncated---
[
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@250b46505175889c6b5958c3829f610f52199f5f",
"target": {
"file": "drivers/soundwire/bus_type.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-0bedc655",
"digest": {
"threshold": 0.9,
"line_hashes": [
"304582906975397714691325858736666100260",
"335026843941144988548452386561721061192",
"154103189600096735281913353258534234090",
"287022657322912890229318597819960733557",
"68160716456984306027617911895524477520",
"192005492197342646683227922053951067071",
"81517170817305700675883067134221463792",
"126875151735978593140122888482545242905",
"338914648888946005563197048951129853542",
"6828377703557105927677151147763061079",
"154093623045959621481902829315926220263",
"41688631049617331252029757071840694880",
"152830056489210017484018286551552085556",
"190065971211582782225016019084548073607",
"190568831997279634687946706401888412124",
"186827480744481065870229604594057877374",
"90081823960357423273938737946885459413",
"34058283134739723104252247682928333891",
"173457659435858777312613072229116671769",
"164350706561293824877004020863994295557",
"319787343960226661294191131096618232934",
"65561272954573420195448662868585634771",
"256867000940722770471452737343729376211",
"30397075699481581497796149400022291207",
"85394883375256949976850159189705047445",
"224244040650281415580071390281173650393",
"326899320853680382241523299844256739134"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bd29c00edd0a5dac8b6e7332bb470cd50f92e893",
"target": {
"function": "sdw_slave_clk_stop_callback",
"file": "drivers/soundwire/bus.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-0c206533",
"digest": {
"length": 233.0,
"function_hash": "244033963848990310868362938754896646751"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bd29c00edd0a5dac8b6e7332bb470cd50f92e893",
"target": {
"file": "drivers/soundwire/slave.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-0c3b4261",
"digest": {
"threshold": 0.9,
"line_hashes": [
"54355669893859078757283134944731345475",
"140557393739269378192295223148907699991",
"78446811425340305425931829742288781241",
"255316990163371316354422507132921086958",
"275993495726773315142589082765793233369",
"118847699428422980390619643252357839191",
"112117491925932487190470117012730941352",
"65457329351536480839866227179285739087",
"322131695099755056277605983411049667692"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8fd6b03646b9a9e16d1ec19bd724cd6bd78e0ea5",
"target": {
"function": "sdw_notify_config",
"file": "drivers/soundwire/stream.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-0f6591ee",
"digest": {
"length": 546.0,
"function_hash": "115444052974215492703911995097631306986"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bd29c00edd0a5dac8b6e7332bb470cd50f92e893",
"target": {
"function": "sdw_do_port_prep",
"file": "drivers/soundwire/stream.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-1315ae05",
"digest": {
"length": 353.0,
"function_hash": "212137846842944811546157497229412670287"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@432b30f08ca3303d2ebb22352cb04c4b6cfefe65",
"target": {
"function": "sdw_handle_slave_alerts",
"file": "drivers/soundwire/bus.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-14c9f075",
"digest": {
"length": 3628.0,
"function_hash": "97543033672159175164663977915066000276"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8fd6b03646b9a9e16d1ec19bd724cd6bd78e0ea5",
"target": {
"file": "drivers/soundwire/bus.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-15e2ac36",
"digest": {
"threshold": 0.9,
"line_hashes": [
"256535982867782021683890587268260250418",
"286486130441242799376176082595639464592",
"98465609417936722664637793078013185498",
"316880939272933765449424213977685771479",
"81580070509528328194864991312801477975",
"238271460167208813146673701527175533689",
"330779608417494552202689975390763413862",
"202761015739704539790367637766669348272",
"173061953846146219292624049866909906102",
"227285610893885210075253489563022447217",
"133536577921269963393258114927296486637",
"52679289906913760892833483748799127539",
"36308270464213014731816555548064543284",
"96553281211571677132205820578065081467",
"97052333799265146182827486921036684197",
"91645681795399018266728741460926223764",
"196866850173208305427325491868956079272",
"117030034112099779438866527379978851654",
"226291560163679343938040155528774115344",
"181988414484319935604705601499109092936",
"133272922858493625500133143116954529752",
"117918154378643736408194682225278972977",
"240194320380627814492372950216805580945",
"338126636320325514249496598817062119307",
"284841169819001490080668673974161434836",
"199754043420428643429323873660929342394",
"28134421081881828936556923025739833946",
"38234340675039786570926842886070367615",
"118865918614641201687860616382143261684",
"295973007560831742044505542632659623386",
"21075298121340935797529455136427737024",
"224608993724186081406602904721590472945",
"128053070310156113189861550692775161613",
"135856516480320061120473023964957730004",
"253921827381117088405433517830942582730",
"239780511110306413304240891433453714973",
"252144193511990336210610956956814222646",
"246318098293560587932860770115336670832",
"293180093965164975941410082851937683084"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@432b30f08ca3303d2ebb22352cb04c4b6cfefe65",
"target": {
"file": "drivers/soundwire/bus_type.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-16ccdcd4",
"digest": {
"threshold": 0.9,
"line_hashes": [
"304582906975397714691325858736666100260",
"335026843941144988548452386561721061192",
"154103189600096735281913353258534234090",
"287022657322912890229318597819960733557",
"68160716456984306027617911895524477520",
"192005492197342646683227922053951067071",
"81517170817305700675883067134221463792",
"126875151735978593140122888482545242905",
"338914648888946005563197048951129853542",
"6828377703557105927677151147763061079",
"154093623045959621481902829315926220263",
"41688631049617331252029757071840694880",
"152830056489210017484018286551552085556",
"190065971211582782225016019084548073607",
"190568831997279634687946706401888412124",
"186827480744481065870229604594057877374",
"90081823960357423273938737946885459413",
"34058283134739723104252247682928333891",
"173457659435858777312613072229116671769",
"164350706561293824877004020863994295557",
"319787343960226661294191131096618232934",
"65561272954573420195448662868585634771",
"256867000940722770471452737343729376211",
"30397075699481581497796149400022291207",
"85394883375256949976850159189705047445",
"224244040650281415580071390281173650393",
"326899320853680382241523299844256739134"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8fd6b03646b9a9e16d1ec19bd724cd6bd78e0ea5",
"target": {
"file": "include/linux/soundwire/sdw.h"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-16e696b3",
"digest": {
"threshold": 0.9,
"line_hashes": [
"307049836356604859310786638075196444604",
"298318076458358591369913487199876927564",
"294331650341474677073949055279343326801",
"217378145618034523735540506447532354555",
"284265874507110143096580042711223793707",
"219685046311385011245898750924484017639",
"153516096171004343155438708144204615278",
"185203589750379871524636909991818463909",
"252134931796169330202253986998268902400",
"17791134175807506684558654632267518184",
"212173574336034523143189551610820494657",
"245259148099536414304908818023965680907"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@432b30f08ca3303d2ebb22352cb04c4b6cfefe65",
"target": {
"function": "sdw_slave_add",
"file": "drivers/soundwire/slave.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-1efa486f",
"digest": {
"length": 1629.0,
"function_hash": "258752115581426058312647123392716915112"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bd29c00edd0a5dac8b6e7332bb470cd50f92e893",
"target": {
"file": "drivers/soundwire/bus.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-2252ff75",
"digest": {
"threshold": 0.9,
"line_hashes": [
"256535982867782021683890587268260250418",
"286486130441242799376176082595639464592",
"98465609417936722664637793078013185498",
"316880939272933765449424213977685771479",
"81580070509528328194864991312801477975",
"238271460167208813146673701527175533689",
"330779608417494552202689975390763413862",
"202761015739704539790367637766669348272",
"173061953846146219292624049866909906102",
"227285610893885210075253489563022447217",
"133536577921269963393258114927296486637",
"52679289906913760892833483748799127539",
"36308270464213014731816555548064543284",
"96553281211571677132205820578065081467",
"97052333799265146182827486921036684197",
"91645681795399018266728741460926223764",
"196866850173208305427325491868956079272",
"117030034112099779438866527379978851654",
"226291560163679343938040155528774115344",
"181988414484319935604705601499109092936",
"133272922858493625500133143116954529752",
"117918154378643736408194682225278972977",
"240194320380627814492372950216805580945",
"338126636320325514249496598817062119307",
"284841169819001490080668673974161434836",
"199754043420428643429323873660929342394",
"28134421081881828936556923025739833946",
"38234340675039786570926842886070367615",
"118865918614641201687860616382143261684",
"295973007560831742044505542632659623386",
"21075298121340935797529455136427737024",
"224608993724186081406602904721590472945",
"128053070310156113189861550692775161613",
"135856516480320061120473023964957730004",
"253921827381117088405433517830942582730",
"239780511110306413304240891433453714973",
"252144193511990336210610956956814222646",
"246318098293560587932860770115336670832",
"293180093965164975941410082851937683084"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@250b46505175889c6b5958c3829f610f52199f5f",
"target": {
"function": "sdw_drv_remove",
"file": "drivers/soundwire/bus_type.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-22c324cb",
"digest": {
"length": 232.0,
"function_hash": "244899080320522594866285466061395436105"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bd29c00edd0a5dac8b6e7332bb470cd50f92e893",
"target": {
"function": "sdw_drv_probe",
"file": "drivers/soundwire/bus_type.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-230aa120",
"digest": {
"length": 1147.0,
"function_hash": "72057562479651564222812739173840546826"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bd29c00edd0a5dac8b6e7332bb470cd50f92e893",
"target": {
"function": "sdw_slave_release",
"file": "drivers/soundwire/slave.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-240b619b",
"digest": {
"length": 97.0,
"function_hash": "146700593862289021015012527076130199503"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8fd6b03646b9a9e16d1ec19bd724cd6bd78e0ea5",
"target": {
"function": "sdw_do_port_prep",
"file": "drivers/soundwire/stream.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-2de4b01a",
"digest": {
"length": 353.0,
"function_hash": "212137846842944811546157497229412670287"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@432b30f08ca3303d2ebb22352cb04c4b6cfefe65",
"target": {
"function": "sdw_slave_release",
"file": "drivers/soundwire/slave.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-38028cb7",
"digest": {
"length": 97.0,
"function_hash": "146700593862289021015012527076130199503"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8fd6b03646b9a9e16d1ec19bd724cd6bd78e0ea5",
"target": {
"function": "sdw_drv_probe",
"file": "drivers/soundwire/bus_type.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-3805208f",
"digest": {
"length": 1147.0,
"function_hash": "72057562479651564222812739173840546826"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@250b46505175889c6b5958c3829f610f52199f5f",
"target": {
"file": "drivers/soundwire/slave.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-39b9844d",
"digest": {
"threshold": 0.9,
"line_hashes": [
"54355669893859078757283134944731345475",
"140557393739269378192295223148907699991",
"78446811425340305425931829742288781241",
"255316990163371316354422507132921086958",
"275993495726773315142589082765793233369",
"118847699428422980390619643252357839191",
"112117491925932487190470117012730941352",
"65457329351536480839866227179285739087",
"322131695099755056277605983411049667692"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bd29c00edd0a5dac8b6e7332bb470cd50f92e893",
"target": {
"file": "include/linux/soundwire/sdw.h"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-40706742",
"digest": {
"threshold": 0.9,
"line_hashes": [
"307049836356604859310786638075196444604",
"298318076458358591369913487199876927564",
"294331650341474677073949055279343326801",
"217378145618034523735540506447532354555",
"284265874507110143096580042711223793707",
"219685046311385011245898750924484017639",
"153516096171004343155438708144204615278",
"185203589750379871524636909991818463909",
"252134931796169330202253986998268902400",
"17791134175807506684558654632267518184",
"212173574336034523143189551610820494657",
"245259148099536414304908818023965680907"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@250b46505175889c6b5958c3829f610f52199f5f",
"target": {
"function": "sdw_drv_probe",
"file": "drivers/soundwire/bus_type.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-4260ea81",
"digest": {
"length": 1147.0,
"function_hash": "72057562479651564222812739173840546826"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bd29c00edd0a5dac8b6e7332bb470cd50f92e893",
"target": {
"file": "drivers/soundwire/bus_type.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-435a6f8a",
"digest": {
"threshold": 0.9,
"line_hashes": [
"304582906975397714691325858736666100260",
"335026843941144988548452386561721061192",
"154103189600096735281913353258534234090",
"287022657322912890229318597819960733557",
"68160716456984306027617911895524477520",
"192005492197342646683227922053951067071",
"81517170817305700675883067134221463792",
"126875151735978593140122888482545242905",
"338914648888946005563197048951129853542",
"6828377703557105927677151147763061079",
"154093623045959621481902829315926220263",
"41688631049617331252029757071840694880",
"152830056489210017484018286551552085556",
"190065971211582782225016019084548073607",
"190568831997279634687946706401888412124",
"186827480744481065870229604594057877374",
"90081823960357423273938737946885459413",
"34058283134739723104252247682928333891",
"173457659435858777312613072229116671769",
"164350706561293824877004020863994295557",
"319787343960226661294191131096618232934",
"65561272954573420195448662868585634771",
"256867000940722770471452737343729376211",
"30397075699481581497796149400022291207",
"85394883375256949976850159189705047445",
"224244040650281415580071390281173650393",
"326899320853680382241523299844256739134"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8fd6b03646b9a9e16d1ec19bd724cd6bd78e0ea5",
"target": {
"function": "sdw_slave_add",
"file": "drivers/soundwire/slave.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-4b102bdb",
"digest": {
"length": 1629.0,
"function_hash": "258752115581426058312647123392716915112"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@250b46505175889c6b5958c3829f610f52199f5f",
"target": {
"function": "sdw_slave_add",
"file": "drivers/soundwire/slave.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-515b78aa",
"digest": {
"length": 1629.0,
"function_hash": "258752115581426058312647123392716915112"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8fd6b03646b9a9e16d1ec19bd724cd6bd78e0ea5",
"target": {
"file": "drivers/soundwire/stream.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-5777cde8",
"digest": {
"threshold": 0.9,
"line_hashes": [
"153535066213173556326302083606557133369",
"41973674081500743231203770643929351803",
"25013316228000145410853304275167181514",
"188254356775474066115436551742897169813",
"274599582624076074303827494780212361947",
"197572827914166338953231257616531684113",
"99884525953708912558198444122983492046",
"246943803418999697586342417853831011409",
"25739937318448114404603202495257234651",
"186630030079306375525830561438504720425",
"146070226979359725153749256773754876830",
"92938772814614001366051874441171904064",
"216572910643358216110362059758265244712",
"167173034007371275105165560480512098623",
"320377790379369074075842428879145172800",
"264457927584748018710462603936151592342",
"267868390585593816517915983992887850017",
"98906465071420491976585798390881169820",
"138800337227448103623192395130612413644",
"301212118420134220515142864530067290320",
"85096377921981107629513871671843830624",
"293284838796811391524548927414767829744",
"133067461096534069698816514125543492859",
"62358357382642685797867851883490569747",
"115980897591097891881481218322401752264",
"107229742781098186750582877358516782498",
"28159479831269254338322178082475263971",
"100181906467321512607892303685868402672",
"60897215974805441127860041626268019578",
"276164567994716502460670456342006351628",
"207427927186120668026404809021066446615",
"15245978077281893038792388904386048629",
"259019649077658729832235593264800171715",
"201541717412904143452260414197344225132",
"46747059519826310284909804205243007902",
"117999780042851794166250191242734562637"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@432b30f08ca3303d2ebb22352cb04c4b6cfefe65",
"target": {
"function": "sdw_notify_config",
"file": "drivers/soundwire/stream.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-58c7a0d0",
"digest": {
"length": 546.0,
"function_hash": "115444052974215492703911995097631306986"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bd29c00edd0a5dac8b6e7332bb470cd50f92e893",
"target": {
"function": "sdw_notify_config",
"file": "drivers/soundwire/stream.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-5d88d41e",
"digest": {
"length": 546.0,
"function_hash": "115444052974215492703911995097631306986"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@432b30f08ca3303d2ebb22352cb04c4b6cfefe65",
"target": {
"function": "sdw_drv_remove",
"file": "drivers/soundwire/bus_type.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-5da502a6",
"digest": {
"length": 232.0,
"function_hash": "244899080320522594866285466061395436105"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8fd6b03646b9a9e16d1ec19bd724cd6bd78e0ea5",
"target": {
"file": "drivers/soundwire/bus_type.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-69cb388a",
"digest": {
"threshold": 0.9,
"line_hashes": [
"304582906975397714691325858736666100260",
"335026843941144988548452386561721061192",
"154103189600096735281913353258534234090",
"287022657322912890229318597819960733557",
"68160716456984306027617911895524477520",
"192005492197342646683227922053951067071",
"81517170817305700675883067134221463792",
"126875151735978593140122888482545242905",
"338914648888946005563197048951129853542",
"6828377703557105927677151147763061079",
"154093623045959621481902829315926220263",
"41688631049617331252029757071840694880",
"152830056489210017484018286551552085556",
"190065971211582782225016019084548073607",
"190568831997279634687946706401888412124",
"186827480744481065870229604594057877374",
"90081823960357423273938737946885459413",
"34058283134739723104252247682928333891",
"173457659435858777312613072229116671769",
"164350706561293824877004020863994295557",
"319787343960226661294191131096618232934",
"65561272954573420195448662868585634771",
"256867000940722770471452737343729376211",
"30397075699481581497796149400022291207",
"85394883375256949976850159189705047445",
"224244040650281415580071390281173650393",
"326899320853680382241523299844256739134"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@250b46505175889c6b5958c3829f610f52199f5f",
"target": {
"file": "drivers/soundwire/bus.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-6de0b26a",
"digest": {
"threshold": 0.9,
"line_hashes": [
"256535982867782021683890587268260250418",
"286486130441242799376176082595639464592",
"98465609417936722664637793078013185498",
"316880939272933765449424213977685771479",
"81580070509528328194864991312801477975",
"238271460167208813146673701527175533689",
"330779608417494552202689975390763413862",
"202761015739704539790367637766669348272",
"173061953846146219292624049866909906102",
"227285610893885210075253489563022447217",
"133536577921269963393258114927296486637",
"52679289906913760892833483748799127539",
"36308270464213014731816555548064543284",
"96553281211571677132205820578065081467",
"97052333799265146182827486921036684197",
"91645681795399018266728741460926223764",
"196866850173208305427325491868956079272",
"117030034112099779438866527379978851654",
"226291560163679343938040155528774115344",
"181988414484319935604705601499109092936",
"133272922858493625500133143116954529752",
"117918154378643736408194682225278972977",
"240194320380627814492372950216805580945",
"338126636320325514249496598817062119307",
"284841169819001490080668673974161434836",
"199754043420428643429323873660929342394",
"28134421081881828936556923025739833946",
"38234340675039786570926842886070367615",
"118865918614641201687860616382143261684",
"295973007560831742044505542632659623386",
"21075298121340935797529455136427737024",
"224608993724186081406602904721590472945",
"128053070310156113189861550692775161613",
"135856516480320061120473023964957730004",
"253921827381117088405433517830942582730",
"239780511110306413304240891433453714973",
"252144193511990336210610956956814222646",
"246318098293560587932860770115336670832",
"293180093965164975941410082851937683084"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bd29c00edd0a5dac8b6e7332bb470cd50f92e893",
"target": {
"function": "sdw_update_slave_status",
"file": "drivers/soundwire/bus.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-8676047d",
"digest": {
"length": 420.0,
"function_hash": "162042841087501944265277448888393440936"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@432b30f08ca3303d2ebb22352cb04c4b6cfefe65",
"target": {
"file": "drivers/soundwire/bus.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-8832fbc5",
"digest": {
"threshold": 0.9,
"line_hashes": [
"256535982867782021683890587268260250418",
"286486130441242799376176082595639464592",
"98465609417936722664637793078013185498",
"316880939272933765449424213977685771479",
"81580070509528328194864991312801477975",
"238271460167208813146673701527175533689",
"330779608417494552202689975390763413862",
"202761015739704539790367637766669348272",
"173061953846146219292624049866909906102",
"227285610893885210075253489563022447217",
"133536577921269963393258114927296486637",
"52679289906913760892833483748799127539",
"36308270464213014731816555548064543284",
"96553281211571677132205820578065081467",
"97052333799265146182827486921036684197",
"91645681795399018266728741460926223764",
"196866850173208305427325491868956079272",
"117030034112099779438866527379978851654",
"226291560163679343938040155528774115344",
"181988414484319935604705601499109092936",
"133272922858493625500133143116954529752",
"117918154378643736408194682225278972977",
"240194320380627814492372950216805580945",
"338126636320325514249496598817062119307",
"284841169819001490080668673974161434836",
"199754043420428643429323873660929342394",
"28134421081881828936556923025739833946",
"38234340675039786570926842886070367615",
"118865918614641201687860616382143261684",
"295973007560831742044505542632659623386",
"21075298121340935797529455136427737024",
"224608993724186081406602904721590472945",
"128053070310156113189861550692775161613",
"135856516480320061120473023964957730004",
"253921827381117088405433517830942582730",
"239780511110306413304240891433453714973",
"252144193511990336210610956956814222646",
"246318098293560587932860770115336670832",
"293180093965164975941410082851937683084"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@250b46505175889c6b5958c3829f610f52199f5f",
"target": {
"function": "sdw_do_port_prep",
"file": "drivers/soundwire/stream.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-8f970185",
"digest": {
"length": 353.0,
"function_hash": "212137846842944811546157497229412670287"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@250b46505175889c6b5958c3829f610f52199f5f",
"target": {
"function": "sdw_handle_slave_alerts",
"file": "drivers/soundwire/bus.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-92695e72",
"digest": {
"length": 3658.0,
"function_hash": "94958711032746938014071209150421595970"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@432b30f08ca3303d2ebb22352cb04c4b6cfefe65",
"target": {
"file": "drivers/soundwire/slave.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-94998375",
"digest": {
"threshold": 0.9,
"line_hashes": [
"54355669893859078757283134944731345475",
"140557393739269378192295223148907699991",
"78446811425340305425931829742288781241",
"255316990163371316354422507132921086958",
"275993495726773315142589082765793233369",
"118847699428422980390619643252357839191",
"112117491925932487190470117012730941352",
"65457329351536480839866227179285739087",
"322131695099755056277605983411049667692"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bd29c00edd0a5dac8b6e7332bb470cd50f92e893",
"target": {
"function": "sdw_drv_remove",
"file": "drivers/soundwire/bus_type.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-96a947fa",
"digest": {
"length": 232.0,
"function_hash": "244899080320522594866285466061395436105"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@250b46505175889c6b5958c3829f610f52199f5f",
"target": {
"file": "drivers/soundwire/stream.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-97c1521e",
"digest": {
"threshold": 0.9,
"line_hashes": [
"153535066213173556326302083606557133369",
"41973674081500743231203770643929351803",
"25013316228000145410853304275167181514",
"188254356775474066115436551742897169813",
"274599582624076074303827494780212361947",
"197572827914166338953231257616531684113",
"99884525953708912558198444122983492046",
"246943803418999697586342417853831011409",
"25739937318448114404603202495257234651",
"186630030079306375525830561438504720425",
"146070226979359725153749256773754876830",
"92938772814614001366051874441171904064",
"216572910643358216110362059758265244712",
"167173034007371275105165560480512098623",
"320377790379369074075842428879145172800",
"264457927584748018710462603936151592342",
"267868390585593816517915983992887850017",
"98906465071420491976585798390881169820",
"138800337227448103623192395130612413644",
"301212118420134220515142864530067290320",
"85096377921981107629513871671843830624",
"293284838796811391524548927414767829744",
"133067461096534069698816514125543492859",
"62358357382642685797867851883490569747",
"115980897591097891881481218322401752264",
"107229742781098186750582877358516782498",
"28159479831269254338322178082475263971",
"100181906467321512607892303685868402672",
"60897215974805441127860041626268019578",
"276164567994716502460670456342006351628",
"207427927186120668026404809021066446615",
"15245978077281893038792388904386048629",
"259019649077658729832235593264800171715",
"201541717412904143452260414197344225132",
"46747059519826310284909804205243007902",
"117999780042851794166250191242734562637"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8fd6b03646b9a9e16d1ec19bd724cd6bd78e0ea5",
"target": {
"file": "drivers/soundwire/slave.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-9d946ab3",
"digest": {
"threshold": 0.9,
"line_hashes": [
"54355669893859078757283134944731345475",
"140557393739269378192295223148907699991",
"78446811425340305425931829742288781241",
"255316990163371316354422507132921086958",
"275993495726773315142589082765793233369",
"118847699428422980390619643252357839191",
"112117491925932487190470117012730941352",
"65457329351536480839866227179285739087",
"322131695099755056277605983411049667692"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@432b30f08ca3303d2ebb22352cb04c4b6cfefe65",
"target": {
"file": "include/linux/soundwire/sdw.h"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-a6ccef22",
"digest": {
"threshold": 0.9,
"line_hashes": [
"307049836356604859310786638075196444604",
"298318076458358591369913487199876927564",
"294331650341474677073949055279343326801",
"217378145618034523735540506447532354555",
"284265874507110143096580042711223793707",
"219685046311385011245898750924484017639",
"153516096171004343155438708144204615278",
"185203589750379871524636909991818463909",
"252134931796169330202253986998268902400",
"17791134175807506684558654632267518184",
"212173574336034523143189551610820494657",
"245259148099536414304908818023965680907"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bd29c00edd0a5dac8b6e7332bb470cd50f92e893",
"target": {
"function": "sdw_handle_slave_alerts",
"file": "drivers/soundwire/bus.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-bf493728",
"digest": {
"length": 3628.0,
"function_hash": "97543033672159175164663977915066000276"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@250b46505175889c6b5958c3829f610f52199f5f",
"target": {
"function": "sdw_notify_config",
"file": "drivers/soundwire/stream.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-ccaa8206",
"digest": {
"length": 546.0,
"function_hash": "115444052974215492703911995097631306986"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8fd6b03646b9a9e16d1ec19bd724cd6bd78e0ea5",
"target": {
"function": "sdw_drv_remove",
"file": "drivers/soundwire/bus_type.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-ccf85a16",
"digest": {
"length": 232.0,
"function_hash": "244899080320522594866285466061395436105"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bd29c00edd0a5dac8b6e7332bb470cd50f92e893",
"target": {
"function": "sdw_slave_add",
"file": "drivers/soundwire/slave.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-cd45011d",
"digest": {
"length": 1629.0,
"function_hash": "258752115581426058312647123392716915112"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8fd6b03646b9a9e16d1ec19bd724cd6bd78e0ea5",
"target": {
"function": "sdw_slave_release",
"file": "drivers/soundwire/slave.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-ce21e080",
"digest": {
"length": 97.0,
"function_hash": "146700593862289021015012527076130199503"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@250b46505175889c6b5958c3829f610f52199f5f",
"target": {
"function": "sdw_update_slave_status",
"file": "drivers/soundwire/bus.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-d4723018",
"digest": {
"length": 420.0,
"function_hash": "162042841087501944265277448888393440936"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@250b46505175889c6b5958c3829f610f52199f5f",
"target": {
"function": "sdw_slave_release",
"file": "drivers/soundwire/slave.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-d4b5ff85",
"digest": {
"length": 97.0,
"function_hash": "146700593862289021015012527076130199503"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@432b30f08ca3303d2ebb22352cb04c4b6cfefe65",
"target": {
"function": "sdw_do_port_prep",
"file": "drivers/soundwire/stream.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-dd4e0d90",
"digest": {
"length": 353.0,
"function_hash": "212137846842944811546157497229412670287"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8fd6b03646b9a9e16d1ec19bd724cd6bd78e0ea5",
"target": {
"function": "sdw_handle_slave_alerts",
"file": "drivers/soundwire/bus.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-ddbfb231",
"digest": {
"length": 3658.0,
"function_hash": "94958711032746938014071209150421595970"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@432b30f08ca3303d2ebb22352cb04c4b6cfefe65",
"target": {
"function": "sdw_slave_clk_stop_callback",
"file": "drivers/soundwire/bus.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-df47e2aa",
"digest": {
"length": 233.0,
"function_hash": "244033963848990310868362938754896646751"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8fd6b03646b9a9e16d1ec19bd724cd6bd78e0ea5",
"target": {
"function": "sdw_slave_clk_stop_callback",
"file": "drivers/soundwire/bus.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-dfc4470c",
"digest": {
"length": 233.0,
"function_hash": "244033963848990310868362938754896646751"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@250b46505175889c6b5958c3829f610f52199f5f",
"target": {
"function": "sdw_slave_clk_stop_callback",
"file": "drivers/soundwire/bus.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-e2c3c6e6",
"digest": {
"length": 233.0,
"function_hash": "244033963848990310868362938754896646751"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@432b30f08ca3303d2ebb22352cb04c4b6cfefe65",
"target": {
"function": "sdw_update_slave_status",
"file": "drivers/soundwire/bus.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-e4f0292f",
"digest": {
"length": 420.0,
"function_hash": "162042841087501944265277448888393440936"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bd29c00edd0a5dac8b6e7332bb470cd50f92e893",
"target": {
"file": "drivers/soundwire/stream.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-f1722a5b",
"digest": {
"threshold": 0.9,
"line_hashes": [
"153535066213173556326302083606557133369",
"41973674081500743231203770643929351803",
"25013316228000145410853304275167181514",
"188254356775474066115436551742897169813",
"274599582624076074303827494780212361947",
"197572827914166338953231257616531684113",
"99884525953708912558198444122983492046",
"246943803418999697586342417853831011409",
"25739937318448114404603202495257234651",
"186630030079306375525830561438504720425",
"146070226979359725153749256773754876830",
"92938772814614001366051874441171904064",
"216572910643358216110362059758265244712",
"167173034007371275105165560480512098623",
"320377790379369074075842428879145172800",
"264457927584748018710462603936151592342",
"267868390585593816517915983992887850017",
"98906465071420491976585798390881169820",
"138800337227448103623192395130612413644",
"301212118420134220515142864530067290320",
"85096377921981107629513871671843830624",
"293284838796811391524548927414767829744",
"133067461096534069698816514125543492859",
"62358357382642685797867851883490569747",
"115980897591097891881481218322401752264",
"107229742781098186750582877358516782498",
"28159479831269254338322178082475263971",
"100181906467321512607892303685868402672",
"60897215974805441127860041626268019578",
"276164567994716502460670456342006351628",
"207427927186120668026404809021066446615",
"15245978077281893038792388904386048629",
"259019649077658729832235593264800171715",
"201541717412904143452260414197344225132",
"46747059519826310284909804205243007902",
"117999780042851794166250191242734562637"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@432b30f08ca3303d2ebb22352cb04c4b6cfefe65",
"target": {
"file": "drivers/soundwire/stream.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-f88dd9c0",
"digest": {
"threshold": 0.9,
"line_hashes": [
"153535066213173556326302083606557133369",
"41973674081500743231203770643929351803",
"25013316228000145410853304275167181514",
"188254356775474066115436551742897169813",
"274599582624076074303827494780212361947",
"197572827914166338953231257616531684113",
"99884525953708912558198444122983492046",
"246943803418999697586342417853831011409",
"25739937318448114404603202495257234651",
"186630030079306375525830561438504720425",
"146070226979359725153749256773754876830",
"92938772814614001366051874441171904064",
"216572910643358216110362059758265244712",
"167173034007371275105165560480512098623",
"320377790379369074075842428879145172800",
"264457927584748018710462603936151592342",
"267868390585593816517915983992887850017",
"98906465071420491976585798390881169820",
"138800337227448103623192395130612413644",
"301212118420134220515142864530067290320",
"85096377921981107629513871671843830624",
"293284838796811391524548927414767829744",
"133067461096534069698816514125543492859",
"62358357382642685797867851883490569747",
"115980897591097891881481218322401752264",
"107229742781098186750582877358516782498",
"28159479831269254338322178082475263971",
"100181906467321512607892303685868402672",
"60897215974805441127860041626268019578",
"276164567994716502460670456342006351628",
"207427927186120668026404809021066446615",
"15245978077281893038792388904386048629",
"259019649077658729832235593264800171715",
"201541717412904143452260414197344225132",
"46747059519826310284909804205243007902",
"117999780042851794166250191242734562637"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@250b46505175889c6b5958c3829f610f52199f5f",
"target": {
"file": "include/linux/soundwire/sdw.h"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-fb6426f9",
"digest": {
"threshold": 0.9,
"line_hashes": [
"307049836356604859310786638075196444604",
"298318076458358591369913487199876927564",
"294331650341474677073949055279343326801",
"217378145618034523735540506447532354555",
"284265874507110143096580042711223793707",
"219685046311385011245898750924484017639",
"153516096171004343155438708144204615278",
"185203589750379871524636909991818463909",
"252134931796169330202253986998268902400",
"17791134175807506684558654632267518184",
"212173574336034523143189551610820494657",
"245259148099536414304908818023965680907"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@432b30f08ca3303d2ebb22352cb04c4b6cfefe65",
"target": {
"function": "sdw_drv_probe",
"file": "drivers/soundwire/bus_type.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-fc93293d",
"digest": {
"length": 1147.0,
"function_hash": "72057562479651564222812739173840546826"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8fd6b03646b9a9e16d1ec19bd724cd6bd78e0ea5",
"target": {
"function": "sdw_update_slave_status",
"file": "drivers/soundwire/bus.c"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2022-50144-ff2333cd",
"digest": {
"length": 420.0,
"function_hash": "162042841087501944265277448888393440936"
},
"signature_type": "Function"
}
]