In the Linux kernel, the following vulnerability has been resolved:
tty: add the option to have a tty reject a new ldisc
... and use it to limit the virtual terminals to just NTTY. They are kind of special, and in particular, the "conwrite()" routine violates the "writes cannot sleep" rule that some ldiscs rely on.
This avoids the
BUG: sleeping function called from invalid context at kernel/printk/printk.c:2659
when NGSM has been attached to a virtual console, and gsmldwrite() calls conwrite() while holding a spinlock, and conwrite() then tries to get the console lock.
[
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"177386997952330068951843996830155565606",
"86274546933691369609662609485554237349",
"247578696655292031876668639441042390743"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/tty/tty_ldisc.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5920ac19964f9e20181f63b410d9200ddbf8dc86",
"id": "CVE-2024-40966-04e241f3"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"177386997952330068951843996830155565606",
"86274546933691369609662609485554237349",
"247578696655292031876668639441042390743"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/tty/tty_ldisc.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3c6332f3bb1578b5b10ac2561247b1d6272ae937",
"id": "CVE-2024-40966-09590363"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"226481139058895170245125212605597780016",
"27845378112494800096815048457956982389",
"251148172797797446896611960300645286432",
"216864359593641295616621778235409713663",
"133863565086952818923290909560875776018",
"319476143229602505687286501269495877093",
"40036870070694202936674091241036611704"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/tty/vt/vt.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@287b569a5b914903ba7c438a3c0dbc3410ebb409",
"id": "CVE-2024-40966-2763b9da"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"247582544977725357203641220728019512307",
"49512720403101271017505431916977250161",
"58625535545040172982024774276349791228",
"123673291939401702218229707953705807465",
"79321180119770865733412710228424580355",
"157407344831263483687636206251941392994",
"214496173043087058979160343149074574143"
]
},
"signature_type": "Line",
"target": {
"file": "include/linux/tty_driver.h"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6bd23e0c2bb6c65d4f5754d1456bc9a4427fc59b",
"id": "CVE-2024-40966-42103fd4"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"226481139058895170245125212605597780016",
"27845378112494800096815048457956982389",
"251148172797797446896611960300645286432",
"216864359593641295616621778235409713663",
"133863565086952818923290909560875776018",
"319476143229602505687286501269495877093",
"40036870070694202936674091241036611704"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/tty/vt/vt.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6bd23e0c2bb6c65d4f5754d1456bc9a4427fc59b",
"id": "CVE-2024-40966-49faf603"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"226481139058895170245125212605597780016",
"27845378112494800096815048457956982389",
"251148172797797446896611960300645286432",
"216864359593641295616621778235409713663",
"133863565086952818923290909560875776018",
"319476143229602505687286501269495877093",
"40036870070694202936674091241036611704"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/tty/vt/vt.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5920ac19964f9e20181f63b410d9200ddbf8dc86",
"id": "CVE-2024-40966-4baa1535"
},
{
"digest": {
"length": 971.0,
"function_hash": "72999473258183095384079798123060105691"
},
"signature_type": "Function",
"target": {
"function": "tty_set_ldisc",
"file": "drivers/tty/tty_ldisc.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5920ac19964f9e20181f63b410d9200ddbf8dc86",
"id": "CVE-2024-40966-512ed1ad"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"247582544977725357203641220728019512307",
"49512720403101271017505431916977250161",
"58625535545040172982024774276349791228",
"123673291939401702218229707953705807465",
"79321180119770865733412710228424580355",
"157407344831263483687636206251941392994",
"124259464605553452165077782386848553496"
]
},
"signature_type": "Line",
"target": {
"file": "include/linux/tty_driver.h"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3c6332f3bb1578b5b10ac2561247b1d6272ae937",
"id": "CVE-2024-40966-65d41380"
},
{
"digest": {
"length": 971.0,
"function_hash": "72999473258183095384079798123060105691"
},
"signature_type": "Function",
"target": {
"function": "tty_set_ldisc",
"file": "drivers/tty/tty_ldisc.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6bd23e0c2bb6c65d4f5754d1456bc9a4427fc59b",
"id": "CVE-2024-40966-76fc3d0f"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"177386997952330068951843996830155565606",
"86274546933691369609662609485554237349",
"247578696655292031876668639441042390743"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/tty/tty_ldisc.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@287b569a5b914903ba7c438a3c0dbc3410ebb409",
"id": "CVE-2024-40966-78b628eb"
},
{
"digest": {
"length": 971.0,
"function_hash": "72999473258183095384079798123060105691"
},
"signature_type": "Function",
"target": {
"function": "tty_set_ldisc",
"file": "drivers/tty/tty_ldisc.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3c6332f3bb1578b5b10ac2561247b1d6272ae937",
"id": "CVE-2024-40966-7ab4389b"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"226481139058895170245125212605597780016",
"27845378112494800096815048457956982389",
"251148172797797446896611960300645286432",
"216864359593641295616621778235409713663",
"133863565086952818923290909560875776018",
"319476143229602505687286501269495877093",
"40036870070694202936674091241036611704"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/tty/vt/vt.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3c6332f3bb1578b5b10ac2561247b1d6272ae937",
"id": "CVE-2024-40966-7b369ac3"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"247582544977725357203641220728019512307",
"49512720403101271017505431916977250161",
"58625535545040172982024774276349791228",
"123673291939401702218229707953705807465",
"79321180119770865733412710228424580355",
"157407344831263483687636206251941392994",
"124259464605553452165077782386848553496"
]
},
"signature_type": "Line",
"target": {
"file": "include/linux/tty_driver.h"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@287b569a5b914903ba7c438a3c0dbc3410ebb409",
"id": "CVE-2024-40966-8be69026"
},
{
"digest": {
"length": 971.0,
"function_hash": "72999473258183095384079798123060105691"
},
"signature_type": "Function",
"target": {
"function": "tty_set_ldisc",
"file": "drivers/tty/tty_ldisc.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@287b569a5b914903ba7c438a3c0dbc3410ebb409",
"id": "CVE-2024-40966-8d705e3c"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"247582544977725357203641220728019512307",
"49512720403101271017505431916977250161",
"58625535545040172982024774276349791228",
"123673291939401702218229707953705807465",
"79321180119770865733412710228424580355",
"157407344831263483687636206251941392994",
"214496173043087058979160343149074574143"
]
},
"signature_type": "Line",
"target": {
"file": "include/linux/tty_driver.h"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5920ac19964f9e20181f63b410d9200ddbf8dc86",
"id": "CVE-2024-40966-a2dc6ce5"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"177386997952330068951843996830155565606",
"86274546933691369609662609485554237349",
"247578696655292031876668639441042390743"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/tty/tty_ldisc.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6bd23e0c2bb6c65d4f5754d1456bc9a4427fc59b",
"id": "CVE-2024-40966-e181f42f"
}
]