fkie_cve-2024-57838
Vulnerability from fkie_nvd
Published
2025-01-11 14:15
Modified
2025-01-11 14:15
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
s390/entry: Mark IRQ entries to fix stack depot warnings
The stack depot filters out everything outside of the top interrupt
context as an uninteresting or irrelevant part of the stack traces. This
helps with stack trace de-duplication, avoiding an explosion of saved
stack traces that share the same IRQ context code path but originate
from different randomly interrupted points, eventually exhausting the
stack depot.
Filtering uses in_irqentry_text() to identify functions within the
.irqentry.text and .softirqentry.text sections, which then become the
last stack trace entries being saved.
While __do_softirq() is placed into the .softirqentry.text section by
common code, populating .irqentry.text is architecture-specific.
Currently, the .irqentry.text section on s390 is empty, which prevents
stack depot filtering and de-duplication and could result in warnings
like:
Stack depot reached limit capacity
WARNING: CPU: 0 PID: 286113 at lib/stackdepot.c:252 depot_alloc_stack+0x39a/0x3c8
with PREEMPT and KASAN enabled.
Fix this by moving the IO/EXT interrupt handlers from .kprobes.text into
the .irqentry.text section and updating the kprobes blacklist to include
the .irqentry.text section.
This is done only for asynchronous interrupts and explicitly not for
program checks, which are synchronous and where the context beyond the
program check is important to preserve. Despite machine checks being
somewhat in between, they are extremely rare, and preserving context
when possible is also of value.
SVCs and Restart Interrupts are not relevant, one being always at the
boundary to user space and the other being a one-time thing.
IRQ entries filtering is also optionally used in ftrace function graph,
where the same logic applies.
References
Impacted products
Vendor | Product | Version |
---|
{ "cveTags": [], "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ns390/entry: Mark IRQ entries to fix stack depot warnings\n\nThe stack depot filters out everything outside of the top interrupt\ncontext as an uninteresting or irrelevant part of the stack traces. This\nhelps with stack trace de-duplication, avoiding an explosion of saved\nstack traces that share the same IRQ context code path but originate\nfrom different randomly interrupted points, eventually exhausting the\nstack depot.\n\nFiltering uses in_irqentry_text() to identify functions within the\n.irqentry.text and .softirqentry.text sections, which then become the\nlast stack trace entries being saved.\n\nWhile __do_softirq() is placed into the .softirqentry.text section by\ncommon code, populating .irqentry.text is architecture-specific.\n\nCurrently, the .irqentry.text section on s390 is empty, which prevents\nstack depot filtering and de-duplication and could result in warnings\nlike:\n\nStack depot reached limit capacity\nWARNING: CPU: 0 PID: 286113 at lib/stackdepot.c:252 depot_alloc_stack+0x39a/0x3c8\n\nwith PREEMPT and KASAN enabled.\n\nFix this by moving the IO/EXT interrupt handlers from .kprobes.text into\nthe .irqentry.text section and updating the kprobes blacklist to include\nthe .irqentry.text section.\n\nThis is done only for asynchronous interrupts and explicitly not for\nprogram checks, which are synchronous and where the context beyond the\nprogram check is important to preserve. Despite machine checks being\nsomewhat in between, they are extremely rare, and preserving context\nwhen possible is also of value.\n\nSVCs and Restart Interrupts are not relevant, one being always at the\nboundary to user space and the other being a one-time thing.\n\nIRQ entries filtering is also optionally used in ftrace function graph,\nwhere the same logic applies." }, { "lang": "es", "value": "En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: s390/entry: Marcar entradas de IRQ para corregir advertencias del dep\u00f3sito de pila El dep\u00f3sito de pila filtra todo lo que est\u00e9 fuera del contexto de interrupci\u00f3n superior como una parte poco interesante o irrelevante de los seguimientos de pila. Esto ayuda con la desduplicaci\u00f3n del seguimiento de pila, evitando una explosi\u00f3n de seguimientos de pila guardados que comparten la misma ruta de c\u00f3digo de contexto de IRQ pero que se originan en diferentes puntos interrumpidos aleatoriamente, agotando eventualmente el dep\u00f3sito de pila. El filtrado utiliza in_irqentry_text() para identificar funciones dentro de las secciones .irqentry.text y .softirqentry.text, que luego se convierten en las \u00faltimas entradas del seguimiento de pila que se guardan. Si bien __do_softirq() se coloca en la secci\u00f3n .softirqentry.text por c\u00f3digo com\u00fan, completar .irqentry.text es espec\u00edfico de la arquitectura. Actualmente, la secci\u00f3n .irqentry.text en s390 est\u00e1 vac\u00eda, lo que impide el filtrado y la deduplicaci\u00f3n del dep\u00f3sito de pila y podr\u00eda generar advertencias como: El dep\u00f3sito de pila alcanz\u00f3 la capacidad l\u00edmite ADVERTENCIA: CPU: 0 PID: 286113 en lib/stackdepot.c:252 depot_alloc_stack+0x39a/0x3c8 con PREEMPT y KASAN habilitados. Solucione esto moviendo los controladores de interrupci\u00f3n IO/EXT de .kprobes.text a la secci\u00f3n .irqentry.text y actualizando la lista negra de kprobes para incluir la secci\u00f3n .irqentry.text. Esto se hace solo para interrupciones asincr\u00f3nicas y expl\u00edcitamente no para verificaciones de programa, que son sincr\u00f3nicas y donde es importante preservar el contexto m\u00e1s all\u00e1 de la verificaci\u00f3n de programa. A pesar de que las verificaciones de m\u00e1quina est\u00e1n algo en el medio, son extremadamente raras y preservar el contexto cuando sea posible tambi\u00e9n es valioso. Los SVC y las interrupciones de reinicio no son relevantes, uno siempre se encuentra en el l\u00edmite del espacio del usuario y el otro es algo que ocurre una sola vez. El filtrado de entradas IRQ tambi\u00e9n se utiliza de manera opcional en el gr\u00e1fico de funciones ftrace, donde se aplica la misma l\u00f3gica." } ], "id": "CVE-2024-57838", "lastModified": "2025-01-11T14:15:25.940", "metrics": {}, "published": "2025-01-11T14:15:25.940", "references": [ { "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "url": "https://git.kernel.org/stable/c/1af22528fee8072b7adc007b8ca49cc4ea62689e" }, { "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "url": "https://git.kernel.org/stable/c/45c9f2b856a075a34873d00788d2e8a250c1effd" }, { "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "url": "https://git.kernel.org/stable/c/473ffae3030188f1c6b80e1b3631a26b4adf7b32" }, { "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "url": "https://git.kernel.org/stable/c/5bb7a2c3afcf8732dc65ea49c09147b07da1d993" }, { "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "url": "https://git.kernel.org/stable/c/ca687fdce5b95f84d91d6e36ac77047771eb3dfc" } ], "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "vulnStatus": "Awaiting Analysis" }
Loading…
Loading…
Sightings
Author | Source | Type | Date |
---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.
Loading…
Loading…