FKIE_CVE-2025-68209
Vulnerability from fkie_nvd - Published: 2025-12-16 14:15 - Updated: 2026-10-30 13:18
Severity
Summary
In the Linux kernel, the following vulnerability has been resolved:
mlx5: Fix default values in create CQ
Currently, CQs without a completion function are assigned the
mlx5_add_cq_to_tasklet function by default. This is problematic since
only user CQs created through the mlx5_ib driver are intended to use
this function.
Additionally, all CQs that will use doorbells instead of polling for
completions must call mlx5_cq_arm. However, the default CQ creation flow
leaves a valid value in the CQ's arm_db field, allowing FW to send
interrupts to polling-only CQs in certain corner cases.
These two factors would allow a polling-only kernel CQ to be triggered
by an EQ interrupt and call a completion function intended only for user
CQs, causing a null pointer exception.
Some areas in the driver have prevented this issue with one-off fixes
but did not address the root cause.
This patch fixes the described issue by adding defaults to the create CQ
flow. It adds a default dummy completion function to protect against
null pointer exceptions, and it sets an invalid command sequence number
by default in kernel CQs to prevent the FW from sending an interrupt to
the CQ until it is armed. User CQs are responsible for their own
initialization values.
Callers of mlx5_core_create_cq are responsible for changing the
completion function and arming the CQ per their needs.
References
Impacted products
| Vendor | Product | Version |
|---|
{
"affected": [
{
"affectedData": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/mlx5/cq.c",
"drivers/net/ethernet/mellanox/mlx5/core/cq.c",
"drivers/net/ethernet/mellanox/mlx5/core/en_main.c",
"drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c",
"drivers/net/ethernet/mellanox/mlx5/core/steering/hws/send.c",
"drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_send.c",
"drivers/vdpa/mlx5/net/mlx5_vnet.c",
"include/linux/mlx5/cq.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5c08079c3e5a3c1573afcb5643b5d296865d1170",
"status": "affected",
"version": "cdd04f4d4d71cbf93d0d9abe63bc838f47c467fa",
"versionType": "git"
},
{
"lessThan": "1a7865e3e4de2830d8a9fe8c273dc10b248b7338",
"status": "affected",
"version": "cdd04f4d4d71cbf93d0d9abe63bc838f47c467fa",
"versionType": "git"
},
{
"lessThan": "a39d334c9840705af69f0466f8f0129c366004ca",
"status": "affected",
"version": "cdd04f4d4d71cbf93d0d9abe63bc838f47c467fa",
"versionType": "git"
},
{
"lessThan": "08469f5393a1a39f26a6e2eb2e8c33187665c1f4",
"status": "affected",
"version": "cdd04f4d4d71cbf93d0d9abe63bc838f47c467fa",
"versionType": "git"
},
{
"lessThan": "e5eba42f01340f73888dfe560be2806057c25913",
"status": "affected",
"version": "cdd04f4d4d71cbf93d0d9abe63bc838f47c467fa",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/mlx5/cq.c",
"drivers/net/ethernet/mellanox/mlx5/core/cq.c",
"drivers/net/ethernet/mellanox/mlx5/core/en_main.c",
"drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c",
"drivers/net/ethernet/mellanox/mlx5/core/steering/hws/send.c",
"drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_send.c",
"drivers/vdpa/mlx5/net/mlx5_vnet.c",
"include/linux/mlx5/cq.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.17.*",
"status": "unaffected",
"version": "6.17.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.18",
"versionType": "original_commit_for_fix"
}
]
}
],
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmlx5: Fix default values in create CQ\n\nCurrently, CQs without a completion function are assigned the\nmlx5_add_cq_to_tasklet function by default. This is problematic since\nonly user CQs created through the mlx5_ib driver are intended to use\nthis function.\n\nAdditionally, all CQs that will use doorbells instead of polling for\ncompletions must call mlx5_cq_arm. However, the default CQ creation flow\nleaves a valid value in the CQ\u0027s arm_db field, allowing FW to send\ninterrupts to polling-only CQs in certain corner cases.\n\nThese two factors would allow a polling-only kernel CQ to be triggered\nby an EQ interrupt and call a completion function intended only for user\nCQs, causing a null pointer exception.\n\nSome areas in the driver have prevented this issue with one-off fixes\nbut did not address the root cause.\n\nThis patch fixes the described issue by adding defaults to the create CQ\nflow. It adds a default dummy completion function to protect against\nnull pointer exceptions, and it sets an invalid command sequence number\nby default in kernel CQs to prevent the FW from sending an interrupt to\nthe CQ until it is armed. User CQs are responsible for their own\ninitialization values.\n\nCallers of mlx5_core_create_cq are responsible for changing the\ncompletion function and arming the CQ per their needs."
},
{
"lang": "es",
"value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nmlx5: Corrige valores predeterminados en la creaci\u00f3n de CQ\n\nActualmente, a las CQ sin una funci\u00f3n de completado se les asigna la funci\u00f3n mlx5_add_cq_to_tasklet por defecto. Esto es problem\u00e1tico ya que solo las CQ de usuario creadas a trav\u00e9s del controlador mlx5_ib est\u00e1n destinadas a usar esta funci\u00f3n.\n\nAdem\u00e1s, todas las CQ que usar\u00e1n \u0027doorbells\u0027 en lugar de sondeo para completados deben llamar a mlx5_cq_arm. Sin embargo, el flujo de creaci\u00f3n de CQ por defecto deja un valor v\u00e1lido en el campo arm_db de la CQ, permitiendo que el FW env\u00ede interrupciones a las CQ solo de sondeo en ciertos casos extremos.\n\nEstos dos factores permitir\u00edan que una CQ de kernel solo de sondeo fuera activada por una interrupci\u00f3n EQ y llamara a una funci\u00f3n de completado destinada solo a CQ de usuario, causando una excepci\u00f3n de puntero nulo.\n\nAlgunas \u00e1reas en el controlador han prevenido este problema con correcciones puntuales, pero no abordaron la causa ra\u00edz.\n\nEste parche corrige el problema descrito a\u00f1adiendo valores predeterminados al flujo de creaci\u00f3n de CQ. A\u00f1ade una funci\u00f3n de completado ficticia predeterminada para proteger contra excepciones de puntero nulo, y establece un n\u00famero de secuencia de comando inv\u00e1lido por defecto en las CQ del kernel para evitar que el FW env\u00ede una interrupci\u00f3n a la CQ hasta que est\u00e9 armada. Las CQ de usuario son responsables de sus propios valores de inicializaci\u00f3n.\n\nLos que llaman a mlx5_core_create_cq son responsables de cambiar la funci\u00f3n de completado y armar la CQ seg\u00fan sus necesidades."
}
],
"id": "CVE-2025-68209",
"lastModified": "2026-10-30T13:18:18.147",
"metrics": {},
"published": "2025-12-16T14:15:53.813",
"references": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/08469f5393a1a39f26a6e2eb2e8c33187665c1f4"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/1a7865e3e4de2830d8a9fe8c273dc10b248b7338"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/5c08079c3e5a3c1573afcb5643b5d296865d1170"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/a39d334c9840705af69f0466f8f0129c366004ca"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/e5eba42f01340f73888dfe560be2806057c25913"
}
],
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"vulnStatus": "Deferred"
}
Loading…
Loading…
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
Loading timeline…
Loading…
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Loading…
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.