{"id":"CVE-2026-90249","state":"PUBLISHED","title":"iio: light: gp2ap002: Fix unbalanced runtime PM on repeated event writes","description":"In the Linux kernel, the following vulnerability has been resolved:\n\niio: light: gp2ap002: Fix unbalanced runtime PM on repeated event writes\n\nThe IIO core does not filter duplicate writes to the event enable\nattribute, so writing the same value twice invokes\nwrite_event_config() twice. Enabling twice leaks a runtime PM\nreference, preventing the device from ever suspending again;\ndisabling twice underflows the usage count and triggers a\n\"Runtime PM usage count underflow\" warning.\n\nBail out early when the requested state matches the current state.\nWhile at it, switch to pm_runtime_resume_and_get() so a failed\nresume is propagated to userspace instead of silently marking the\nevent enabled.","publishedAt":"2026-09-17T16:07:50.766Z","updatedAt":"2026-10-19T09:00:24.980Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"97d642e23037c5545266f9564c9b81e6db81b122","status":"affected","lessThan":"b2d7a97d75b648a643f60d77f4d6d70161268855","versionType":"git"},{"version":"97d642e23037c5545266f9564c9b81e6db81b122","status":"affected","lessThan":"685d9d1e5c47e024413981fb7eddab86132b04a1","versionType":"git"},{"version":"97d642e23037c5545266f9564c9b81e6db81b122","status":"affected","lessThan":"56fe8e5f313a64e458bb6f8b982de925345e21a7","versionType":"git"},{"version":"97d642e23037c5545266f9564c9b81e6db81b122","status":"affected","lessThan":"8e76ab81319858736ccf23141e9415f9a1869337","versionType":"git"},{"version":"97d642e23037c5545266f9564c9b81e6db81b122","status":"affected","lessThan":"70b9482926ca92862460e659f5e5fde99ae0b4fa","versionType":"git"},{"version":"97d642e23037c5545266f9564c9b81e6db81b122","status":"affected","lessThan":"0fc740c25c9abb25113398ebb58e2f2ce57741a7","versionType":"git"},{"version":"97d642e23037c5545266f9564c9b81e6db81b122","status":"affected","lessThan":"470edb012b1d9a4fba1cd59e329e60f0798c791a","versionType":"git"},{"version":"97d642e23037c5545266f9564c9b81e6db81b122","status":"affected","lessThan":"579c049b4cb6fc72ce2c505fc5334540be0efcd3","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/iio/light/gp2ap002.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.7","versionType":"semver"},{"version":"5.10.270","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.221","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.188","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.157","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.110","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.52","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.6","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/iio/light/gp2ap002.c"]}],"references":["https://git.kernel.org/stable/c/b2d7a97d75b648a643f60d77f4d6d70161268855","https://git.kernel.org/stable/c/685d9d1e5c47e024413981fb7eddab86132b04a1","https://git.kernel.org/stable/c/56fe8e5f313a64e458bb6f8b982de925345e21a7","https://git.kernel.org/stable/c/8e76ab81319858736ccf23141e9415f9a1869337","https://git.kernel.org/stable/c/70b9482926ca92862460e659f5e5fde99ae0b4fa","https://git.kernel.org/stable/c/0fc740c25c9abb25113398ebb58e2f2ce57741a7","https://git.kernel.org/stable/c/470edb012b1d9a4fba1cd59e329e60f0798c791a","https://git.kernel.org/stable/c/579c049b4cb6fc72ce2c505fc5334540be0efcd3"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:34.582Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/90xxx/CVE-2026-90249.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-90249","state":"PUBLISHED","datePublished":"2026-09-17T16:07:50.766Z","dateUpdated":"2026-10-19T09:00:24.980Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-09-11T19:38:34.795Z"},"containers":{"cna":{"title":"iio: light: gp2ap002: Fix unbalanced runtime PM on repeated event writes","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\niio: light: gp2ap002: Fix unbalanced runtime PM on repeated event writes\n\nThe IIO core does not filter duplicate writes to the event enable\nattribute, so writing the same value twice invokes\nwrite_event_config() twice. Enabling twice leaks a runtime PM\nreference, preventing the device from ever suspending again;\ndisabling twice underflows the usage count and triggers a\n\"Runtime PM usage count underflow\" warning.\n\nBail out early when the requested state matches the current state.\nWhile at it, switch to pm_runtime_resume_and_get() so a failed\nresume is propagated to userspace instead of silently marking the\nevent enabled."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"97d642e23037c5545266f9564c9b81e6db81b122","status":"affected","lessThan":"b2d7a97d75b648a643f60d77f4d6d70161268855","versionType":"git"},{"version":"97d642e23037c5545266f9564c9b81e6db81b122","status":"affected","lessThan":"685d9d1e5c47e024413981fb7eddab86132b04a1","versionType":"git"},{"version":"97d642e23037c5545266f9564c9b81e6db81b122","status":"affected","lessThan":"56fe8e5f313a64e458bb6f8b982de925345e21a7","versionType":"git"},{"version":"97d642e23037c5545266f9564c9b81e6db81b122","status":"affected","lessThan":"8e76ab81319858736ccf23141e9415f9a1869337","versionType":"git"},{"version":"97d642e23037c5545266f9564c9b81e6db81b122","status":"affected","lessThan":"70b9482926ca92862460e659f5e5fde99ae0b4fa","versionType":"git"},{"version":"97d642e23037c5545266f9564c9b81e6db81b122","status":"affected","lessThan":"0fc740c25c9abb25113398ebb58e2f2ce57741a7","versionType":"git"},{"version":"97d642e23037c5545266f9564c9b81e6db81b122","status":"affected","lessThan":"470edb012b1d9a4fba1cd59e329e60f0798c791a","versionType":"git"},{"version":"97d642e23037c5545266f9564c9b81e6db81b122","status":"affected","lessThan":"579c049b4cb6fc72ce2c505fc5334540be0efcd3","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/iio/light/gp2ap002.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.7","versionType":"semver"},{"version":"5.10.270","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.221","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.188","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.157","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.110","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.52","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.6","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/iio/light/gp2ap002.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/b2d7a97d75b648a643f60d77f4d6d70161268855"},{"url":"https://git.kernel.org/stable/c/685d9d1e5c47e024413981fb7eddab86132b04a1"},{"url":"https://git.kernel.org/stable/c/56fe8e5f313a64e458bb6f8b982de925345e21a7"},{"url":"https://git.kernel.org/stable/c/8e76ab81319858736ccf23141e9415f9a1869337"},{"url":"https://git.kernel.org/stable/c/70b9482926ca92862460e659f5e5fde99ae0b4fa"},{"url":"https://git.kernel.org/stable/c/0fc740c25c9abb25113398ebb58e2f2ce57741a7"},{"url":"https://git.kernel.org/stable/c/470edb012b1d9a4fba1cd59e329e60f0798c791a"},{"url":"https://git.kernel.org/stable/c/579c049b4cb6fc72ce2c505fc5334540be0efcd3"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-19T09:00:24.980Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"5.10.270"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"5.15.221"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"6.1.188"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"6.6.157"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"6.12.110"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"6.18.52"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"7.2.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"7.3"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}