{"api_version":"1","generated_at":"2026-08-10T23:01:18+00:00","cve":"CVE-2026-68281","urls":{"html":"https://cve.report/CVE-2026-68281","api":"https://cve.report/api/cve/CVE-2026-68281.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-68281","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-68281"},"summary":{"title":"drm/imagination: Count paired job fence as dependency in prepare_job()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/imagination: Count paired job fence as dependency in prepare_job()\n\nThe DRM scheduler's prepare_job() callback counts the remaining\nnon-signaled native dependencies for a job, preventing job submission\nuntil those (plus job data and fence update) can fit in the job queue's\nCCCB.\n\nThis means checking which dependencies can be waited upon in the\nfirmware, i.e. whether they are backed by a UFO object, i.e. whether\ntheir drm_sched_fence::parent has been assigned to a\npvr_queue_fence::base fence. That happens when the job owning the fence\nis submitted to the firmware.\n\nPaired geometry and fragment jobs are submitted at the same time, which\nmeans the dependency between them can't be checked this way before\nsubmission.\n\nUpdate job_count_remaining_native_deps() to take into account the\ndependency between paired jobs.\n\nThis fixes cases where prepare_job() underestimated the space left in\nan almost full fragment CCCB, wrongly unblocking run_job(), which then\nreturned early without writing the full sequence of commands to the\nCCCB.\n\nThe above lead to kernel warnings such as the following and potentially\njob timeouts (depending on waiters on the missing commands):\n\n  [  375.702979] WARNING: drivers/gpu/drm/imagination/pvr_cccb.c:178 at pvr_cccb_write_command_with_header+0x2c4/0x330 [powervr], CPU#1: kworker/u16:3/47\n  [  375.703160] Modules linked in:\n  [  375.703571] CPU: 1 UID: 0 PID: 47 Comm: kworker/u16:3 Tainted: G        W           7.0.0-rc2-g817eb6b11ad5 #40 PREEMPT\n  [  375.703613] Tainted: [W]=WARN\n  [  375.703627] Hardware name: Texas Instruments AM625 SK (DT)\n  [  375.703645] Workqueue: powervr-sched drm_sched_run_job_work [gpu_sched]\n  [  375.703741] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)\n  [  375.703764] pc : pvr_cccb_write_command_with_header+0x2c4/0x330 [powervr]\n  [  375.703847] lr : pvr_queue_submit_job_to_cccb+0x578/0xa70 [powervr]\n  [  375.703921] sp : ffff800084a97650\n  [  375.703934] x29: ffff800084a97740 x28: 0000000000000958 x27: ffff80008565d000\n  [  375.703979] x26: 0000000000000030 x25: ffff800084a97680 x24: 0000000000001000\n  [  375.704017] x23: ffff800084a97820 x22: 1ffff00010952ecc x21: 0000000000000008\n  [  375.704056] x20: 00000000000006a8 x19: ffff00002ff7da88 x18: 0000000000000000\n  [  375.704093] x17: 0000000020020000 x16: 0000000000020000 x15: 0000000000000000\n  [  375.704132] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000\n  [  375.704168] x11: 000000000000f2f2 x10: 00000000f3000000 x9 : 00000000f3f3f3f3\n  [  375.704206] x8 : 00000000f2f2f200 x7 : ffff700010952ecc x6 : 0000000000000008\n  [  375.704243] x5 : 0000000000000000 x4 : 1ffff00010acba00 x3 : 0000000000000000\n  [  375.704279] x2 : 0000000000000007 x1 : 0000000000000fff x0 : 000000000000002f\n  [  375.704317] Call trace:\n  [  375.704331]  pvr_cccb_write_command_with_header+0x2c4/0x330 [powervr] (P)\n  [  375.704411]  pvr_queue_submit_job_to_cccb+0x578/0xa70 [powervr]\n  [  375.704487]  pvr_queue_run_job+0x3a4/0x990 [powervr]\n  [  375.704562]  drm_sched_run_job_work+0x580/0xd48 [gpu_sched]\n  [  375.704623]  process_one_work+0x520/0x1288\n  [  375.704658]  worker_thread+0x3f0/0xb3c\n  [  375.704680]  kthread+0x334/0x3d8\n  [  375.704706]  ret_from_fork+0x10/0x20\n  [  375.704736] ---[ end trace 0000000000000000 ]---","state":"PUBLISHED","assigner":"Linux","published_at":"2026-08-10 13:20:17","updated_at":"2026-08-10 13:20:17"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/a673171502e87acb5a9e2923f4cf9dce521fd05e","name":"https://git.kernel.org/stable/c/a673171502e87acb5a9e2923f4cf9dce521fd05e","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/02b0da249c8f78d2bbf9f498bbd371c66142b0af","name":"https://git.kernel.org/stable/c/02b0da249c8f78d2bbf9f498bbd371c66142b0af","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/943fa73ea0efa335d9c1800fcfac47915de4ff89","name":"https://git.kernel.org/stable/c/943fa73ea0efa335d9c1800fcfac47915de4ff89","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/9cd74f935306cd857f46686975c43383e1d95f94","name":"https://git.kernel.org/stable/c/9cd74f935306cd857f46686975c43383e1d95f94","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-68281","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-68281","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected eaf01ee5ba28b97f96a3d3eec4c5fbfb37ee4cde 02b0da249c8f78d2bbf9f498bbd371c66142b0af git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected eaf01ee5ba28b97f96a3d3eec4c5fbfb37ee4cde 943fa73ea0efa335d9c1800fcfac47915de4ff89 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected eaf01ee5ba28b97f96a3d3eec4c5fbfb37ee4cde a673171502e87acb5a9e2923f4cf9dce521fd05e git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected eaf01ee5ba28b97f96a3d3eec4c5fbfb37ee4cde 9cd74f935306cd857f46686975c43383e1d95f94 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.8","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.8 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.101 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.42 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1.6 7.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2-rc1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/gpu/drm/imagination/pvr_queue.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"02b0da249c8f78d2bbf9f498bbd371c66142b0af","status":"affected","version":"eaf01ee5ba28b97f96a3d3eec4c5fbfb37ee4cde","versionType":"git"},{"lessThan":"943fa73ea0efa335d9c1800fcfac47915de4ff89","status":"affected","version":"eaf01ee5ba28b97f96a3d3eec4c5fbfb37ee4cde","versionType":"git"},{"lessThan":"a673171502e87acb5a9e2923f4cf9dce521fd05e","status":"affected","version":"eaf01ee5ba28b97f96a3d3eec4c5fbfb37ee4cde","versionType":"git"},{"lessThan":"9cd74f935306cd857f46686975c43383e1d95f94","status":"affected","version":"eaf01ee5ba28b97f96a3d3eec4c5fbfb37ee4cde","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/gpu/drm/imagination/pvr_queue.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"6.8"},{"lessThan":"6.8","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.101","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.42","versionType":"semver"},{"lessThanOrEqual":"7.1.*","status":"unaffected","version":"7.1.6","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.2-rc1","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.101","versionStartIncluding":"6.8","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.42","versionStartIncluding":"6.8","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1.6","versionStartIncluding":"6.8","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2-rc1","versionStartIncluding":"6.8","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/imagination: Count paired job fence as dependency in prepare_job()\n\nThe DRM scheduler's prepare_job() callback counts the remaining\nnon-signaled native dependencies for a job, preventing job submission\nuntil those (plus job data and fence update) can fit in the job queue's\nCCCB.\n\nThis means checking which dependencies can be waited upon in the\nfirmware, i.e. whether they are backed by a UFO object, i.e. whether\ntheir drm_sched_fence::parent has been assigned to a\npvr_queue_fence::base fence. That happens when the job owning the fence\nis submitted to the firmware.\n\nPaired geometry and fragment jobs are submitted at the same time, which\nmeans the dependency between them can't be checked this way before\nsubmission.\n\nUpdate job_count_remaining_native_deps() to take into account the\ndependency between paired jobs.\n\nThis fixes cases where prepare_job() underestimated the space left in\nan almost full fragment CCCB, wrongly unblocking run_job(), which then\nreturned early without writing the full sequence of commands to the\nCCCB.\n\nThe above lead to kernel warnings such as the following and potentially\njob timeouts (depending on waiters on the missing commands):\n\n  [  375.702979] WARNING: drivers/gpu/drm/imagination/pvr_cccb.c:178 at pvr_cccb_write_command_with_header+0x2c4/0x330 [powervr], CPU#1: kworker/u16:3/47\n  [  375.703160] Modules linked in:\n  [  375.703571] CPU: 1 UID: 0 PID: 47 Comm: kworker/u16:3 Tainted: G        W           7.0.0-rc2-g817eb6b11ad5 #40 PREEMPT\n  [  375.703613] Tainted: [W]=WARN\n  [  375.703627] Hardware name: Texas Instruments AM625 SK (DT)\n  [  375.703645] Workqueue: powervr-sched drm_sched_run_job_work [gpu_sched]\n  [  375.703741] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)\n  [  375.703764] pc : pvr_cccb_write_command_with_header+0x2c4/0x330 [powervr]\n  [  375.703847] lr : pvr_queue_submit_job_to_cccb+0x578/0xa70 [powervr]\n  [  375.703921] sp : ffff800084a97650\n  [  375.703934] x29: ffff800084a97740 x28: 0000000000000958 x27: ffff80008565d000\n  [  375.703979] x26: 0000000000000030 x25: ffff800084a97680 x24: 0000000000001000\n  [  375.704017] x23: ffff800084a97820 x22: 1ffff00010952ecc x21: 0000000000000008\n  [  375.704056] x20: 00000000000006a8 x19: ffff00002ff7da88 x18: 0000000000000000\n  [  375.704093] x17: 0000000020020000 x16: 0000000000020000 x15: 0000000000000000\n  [  375.704132] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000\n  [  375.704168] x11: 000000000000f2f2 x10: 00000000f3000000 x9 : 00000000f3f3f3f3\n  [  375.704206] x8 : 00000000f2f2f200 x7 : ffff700010952ecc x6 : 0000000000000008\n  [  375.704243] x5 : 0000000000000000 x4 : 1ffff00010acba00 x3 : 0000000000000000\n  [  375.704279] x2 : 0000000000000007 x1 : 0000000000000fff x0 : 000000000000002f\n  [  375.704317] Call trace:\n  [  375.704331]  pvr_cccb_write_command_with_header+0x2c4/0x330 [powervr] (P)\n  [  375.704411]  pvr_queue_submit_job_to_cccb+0x578/0xa70 [powervr]\n  [  375.704487]  pvr_queue_run_job+0x3a4/0x990 [powervr]\n  [  375.704562]  drm_sched_run_job_work+0x580/0xd48 [gpu_sched]\n  [  375.704623]  process_one_work+0x520/0x1288\n  [  375.704658]  worker_thread+0x3f0/0xb3c\n  [  375.704680]  kthread+0x334/0x3d8\n  [  375.704706]  ret_from_fork+0x10/0x20\n  [  375.704736] ---[ end trace 0000000000000000 ]---"}],"providerMetadata":{"dateUpdated":"2026-08-10T12:02:13.103Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/02b0da249c8f78d2bbf9f498bbd371c66142b0af"},{"url":"https://git.kernel.org/stable/c/943fa73ea0efa335d9c1800fcfac47915de4ff89"},{"url":"https://git.kernel.org/stable/c/a673171502e87acb5a9e2923f4cf9dce521fd05e"},{"url":"https://git.kernel.org/stable/c/9cd74f935306cd857f46686975c43383e1d95f94"}],"title":"drm/imagination: Count paired job fence as dependency in prepare_job()","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-68281","datePublished":"2026-08-10T12:02:13.103Z","dateReserved":"2026-07-30T09:28:09.379Z","dateUpdated":"2026-08-10T12:02:13.103Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-08-10 13:20:17","lastModifiedDate":"2026-08-10 13:20:17","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"68281","Ordinal":"1","Title":"drm/imagination: Count paired job fence as dependency in prepare","CVE":"CVE-2026-68281","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"68281","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/imagination: Count paired job fence as dependency in prepare_job()\n\nThe DRM scheduler's prepare_job() callback counts the remaining\nnon-signaled native dependencies for a job, preventing job submission\nuntil those (plus job data and fence update) can fit in the job queue's\nCCCB.\n\nThis means checking which dependencies can be waited upon in the\nfirmware, i.e. whether they are backed by a UFO object, i.e. whether\ntheir drm_sched_fence::parent has been assigned to a\npvr_queue_fence::base fence. That happens when the job owning the fence\nis submitted to the firmware.\n\nPaired geometry and fragment jobs are submitted at the same time, which\nmeans the dependency between them can't be checked this way before\nsubmission.\n\nUpdate job_count_remaining_native_deps() to take into account the\ndependency between paired jobs.\n\nThis fixes cases where prepare_job() underestimated the space left in\nan almost full fragment CCCB, wrongly unblocking run_job(), which then\nreturned early without writing the full sequence of commands to the\nCCCB.\n\nThe above lead to kernel warnings such as the following and potentially\njob timeouts (depending on waiters on the missing commands):\n\n  [  375.702979] WARNING: drivers/gpu/drm/imagination/pvr_cccb.c:178 at pvr_cccb_write_command_with_header+0x2c4/0x330 [powervr], CPU#1: kworker/u16:3/47\n  [  375.703160] Modules linked in:\n  [  375.703571] CPU: 1 UID: 0 PID: 47 Comm: kworker/u16:3 Tainted: G        W           7.0.0-rc2-g817eb6b11ad5 #40 PREEMPT\n  [  375.703613] Tainted: [W]=WARN\n  [  375.703627] Hardware name: Texas Instruments AM625 SK (DT)\n  [  375.703645] Workqueue: powervr-sched drm_sched_run_job_work [gpu_sched]\n  [  375.703741] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)\n  [  375.703764] pc : pvr_cccb_write_command_with_header+0x2c4/0x330 [powervr]\n  [  375.703847] lr : pvr_queue_submit_job_to_cccb+0x578/0xa70 [powervr]\n  [  375.703921] sp : ffff800084a97650\n  [  375.703934] x29: ffff800084a97740 x28: 0000000000000958 x27: ffff80008565d000\n  [  375.703979] x26: 0000000000000030 x25: ffff800084a97680 x24: 0000000000001000\n  [  375.704017] x23: ffff800084a97820 x22: 1ffff00010952ecc x21: 0000000000000008\n  [  375.704056] x20: 00000000000006a8 x19: ffff00002ff7da88 x18: 0000000000000000\n  [  375.704093] x17: 0000000020020000 x16: 0000000000020000 x15: 0000000000000000\n  [  375.704132] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000\n  [  375.704168] x11: 000000000000f2f2 x10: 00000000f3000000 x9 : 00000000f3f3f3f3\n  [  375.704206] x8 : 00000000f2f2f200 x7 : ffff700010952ecc x6 : 0000000000000008\n  [  375.704243] x5 : 0000000000000000 x4 : 1ffff00010acba00 x3 : 0000000000000000\n  [  375.704279] x2 : 0000000000000007 x1 : 0000000000000fff x0 : 000000000000002f\n  [  375.704317] Call trace:\n  [  375.704331]  pvr_cccb_write_command_with_header+0x2c4/0x330 [powervr] (P)\n  [  375.704411]  pvr_queue_submit_job_to_cccb+0x578/0xa70 [powervr]\n  [  375.704487]  pvr_queue_run_job+0x3a4/0x990 [powervr]\n  [  375.704562]  drm_sched_run_job_work+0x580/0xd48 [gpu_sched]\n  [  375.704623]  process_one_work+0x520/0x1288\n  [  375.704658]  worker_thread+0x3f0/0xb3c\n  [  375.704680]  kthread+0x334/0x3d8\n  [  375.704706]  ret_from_fork+0x10/0x20\n  [  375.704736] ---[ end trace 0000000000000000 ]---","Type":"Description","Title":"drm/imagination: Count paired job fence as dependency in prepare"}]}}}