{"id":"CVE-2022-50728","state":"PUBLISHED","title":"s390/lcs: Fix return type of lcs_start_xmit()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ns390/lcs: Fix return type of lcs_start_xmit()\n\nWith clang's kernel control flow integrity (kCFI, CONFIG_CFI_CLANG),\nindirect call targets are validated against the expected function\npointer prototype to make sure the call target is valid to help mitigate\nROP attacks. If they are not identical, there is a failure at run time,\nwhich manifests as either a kernel panic or thread getting killed. A\nproposed warning in clang aims to catch these at compile time, which\nreveals:\n\n  drivers/s390/net/lcs.c:2090:21: error: incompatible function pointer types initializing 'netdev_tx_t (*)(struct sk_buff *, struct net_device *)' (aka 'enum netdev_tx (*)(struct sk_buff *, struct net_device *)') with an expression of type 'int (struct sk_buff *, struct net_device *)' [-Werror,-Wincompatible-function-pointer-types-strict]\n          .ndo_start_xmit         = lcs_start_xmit,\n                                    ^~~~~~~~~~~~~~\n  drivers/s390/net/lcs.c:2097:21: error: incompatible function pointer types initializing 'netdev_tx_t (*)(struct sk_buff *, struct net_device *)' (aka 'enum netdev_tx (*)(struct sk_buff *, struct net_device *)') with an expression of type 'int (struct sk_buff *, struct net_device *)' [-Werror,-Wincompatible-function-pointer-types-strict]\n          .ndo_start_xmit         = lcs_start_xmit,\n                                    ^~~~~~~~~~~~~~\n\n->ndo_start_xmit() in 'struct net_device_ops' expects a return type of\n'netdev_tx_t', not 'int'. Adjust the return type of lcs_start_xmit() to\nmatch the prototype's to resolve the warning and potential CFI failure,\nshould s390 select ARCH_SUPPORTS_CFI_CLANG in the future.","publishedAt":"2025-12-24T12:22:49.001Z","updatedAt":"2026-05-11T19:24:22.183Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"7b4da3fcd513b8e67823eb80da37aad99b3339c1","versionType":"git"},{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"d49cc2b705711fb8fb849e7c660929b2100360b7","versionType":"git"},{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"e684215d8a903752e2b0cc946517fb61e57a880a","versionType":"git"},{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"20022d551f2064a194d8e0acb6cd7a85094a17b2","versionType":"git"},{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"ebc3c77785dc8b5b626309c0032a38fbb139287a","versionType":"git"},{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"5ad774fb823c24bbeb21a15a67103ea7a6f5b928","versionType":"git"},{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"69669820844f81a77b6db24b86581320ae4d17af","versionType":"git"},{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"cda74cdc280ba35c8993e7517bac5c257ff36f18","versionType":"git"},{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"bb16db8393658e0978c3f0d30ae069e878264fa3","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/s390/net/lcs.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.32","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.32","versionType":"semver"},{"version":"4.9.337","status":"unaffected","lessThanOrEqual":"4.9.*","versionType":"semver"},{"version":"4.14.303","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.270","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.229","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.163","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.86","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.0.16","status":"unaffected","lessThanOrEqual":"6.0.*","versionType":"semver"},{"version":"6.1.2","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/s390/net/lcs.c"]}],"references":["https://git.kernel.org/stable/c/7b4da3fcd513b8e67823eb80da37aad99b3339c1","https://git.kernel.org/stable/c/d49cc2b705711fb8fb849e7c660929b2100360b7","https://git.kernel.org/stable/c/e684215d8a903752e2b0cc946517fb61e57a880a","https://git.kernel.org/stable/c/20022d551f2064a194d8e0acb6cd7a85094a17b2","https://git.kernel.org/stable/c/ebc3c77785dc8b5b626309c0032a38fbb139287a","https://git.kernel.org/stable/c/5ad774fb823c24bbeb21a15a67103ea7a6f5b928","https://git.kernel.org/stable/c/69669820844f81a77b6db24b86581320ae4d17af","https://git.kernel.org/stable/c/cda74cdc280ba35c8993e7517bac5c257ff36f18","https://git.kernel.org/stable/c/bb16db8393658e0978c3f0d30ae069e878264fa3"],"weaknesses":[],"ingestedAt":"2026-10-29T20:05:26.763Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2022/50xxx/CVE-2022-50728.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2022-50728","state":"PUBLISHED","datePublished":"2025-12-24T12:22:49.001Z","dateUpdated":"2026-05-11T19:24:22.183Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-12-24T12:20:40.330Z"},"containers":{"cna":{"title":"s390/lcs: Fix return type of lcs_start_xmit()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ns390/lcs: Fix return type of lcs_start_xmit()\n\nWith clang's kernel control flow integrity (kCFI, CONFIG_CFI_CLANG),\nindirect call targets are validated against the expected function\npointer prototype to make sure the call target is valid to help mitigate\nROP attacks. If they are not identical, there is a failure at run time,\nwhich manifests as either a kernel panic or thread getting killed. A\nproposed warning in clang aims to catch these at compile time, which\nreveals:\n\n  drivers/s390/net/lcs.c:2090:21: error: incompatible function pointer types initializing 'netdev_tx_t (*)(struct sk_buff *, struct net_device *)' (aka 'enum netdev_tx (*)(struct sk_buff *, struct net_device *)') with an expression of type 'int (struct sk_buff *, struct net_device *)' [-Werror,-Wincompatible-function-pointer-types-strict]\n          .ndo_start_xmit         = lcs_start_xmit,\n                                    ^~~~~~~~~~~~~~\n  drivers/s390/net/lcs.c:2097:21: error: incompatible function pointer types initializing 'netdev_tx_t (*)(struct sk_buff *, struct net_device *)' (aka 'enum netdev_tx (*)(struct sk_buff *, struct net_device *)') with an expression of type 'int (struct sk_buff *, struct net_device *)' [-Werror,-Wincompatible-function-pointer-types-strict]\n          .ndo_start_xmit         = lcs_start_xmit,\n                                    ^~~~~~~~~~~~~~\n\n->ndo_start_xmit() in 'struct net_device_ops' expects a return type of\n'netdev_tx_t', not 'int'. Adjust the return type of lcs_start_xmit() to\nmatch the prototype's to resolve the warning and potential CFI failure,\nshould s390 select ARCH_SUPPORTS_CFI_CLANG in the future."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"7b4da3fcd513b8e67823eb80da37aad99b3339c1","versionType":"git"},{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"d49cc2b705711fb8fb849e7c660929b2100360b7","versionType":"git"},{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"e684215d8a903752e2b0cc946517fb61e57a880a","versionType":"git"},{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"20022d551f2064a194d8e0acb6cd7a85094a17b2","versionType":"git"},{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"ebc3c77785dc8b5b626309c0032a38fbb139287a","versionType":"git"},{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"5ad774fb823c24bbeb21a15a67103ea7a6f5b928","versionType":"git"},{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"69669820844f81a77b6db24b86581320ae4d17af","versionType":"git"},{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"cda74cdc280ba35c8993e7517bac5c257ff36f18","versionType":"git"},{"version":"dc1f8bf68b311b1537cb65893430b6796118498a","status":"affected","lessThan":"bb16db8393658e0978c3f0d30ae069e878264fa3","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/s390/net/lcs.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.32","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.32","versionType":"semver"},{"version":"4.9.337","status":"unaffected","lessThanOrEqual":"4.9.*","versionType":"semver"},{"version":"4.14.303","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.270","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.229","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.163","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.86","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.0.16","status":"unaffected","lessThanOrEqual":"6.0.*","versionType":"semver"},{"version":"6.1.2","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/s390/net/lcs.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/7b4da3fcd513b8e67823eb80da37aad99b3339c1"},{"url":"https://git.kernel.org/stable/c/d49cc2b705711fb8fb849e7c660929b2100360b7"},{"url":"https://git.kernel.org/stable/c/e684215d8a903752e2b0cc946517fb61e57a880a"},{"url":"https://git.kernel.org/stable/c/20022d551f2064a194d8e0acb6cd7a85094a17b2"},{"url":"https://git.kernel.org/stable/c/ebc3c77785dc8b5b626309c0032a38fbb139287a"},{"url":"https://git.kernel.org/stable/c/5ad774fb823c24bbeb21a15a67103ea7a6f5b928"},{"url":"https://git.kernel.org/stable/c/69669820844f81a77b6db24b86581320ae4d17af"},{"url":"https://git.kernel.org/stable/c/cda74cdc280ba35c8993e7517bac5c257ff36f18"},{"url":"https://git.kernel.org/stable/c/bb16db8393658e0978c3f0d30ae069e878264fa3"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T19:24:22.183Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.32","versionEndExcluding":"4.9.337"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.32","versionEndExcluding":"4.14.303"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.32","versionEndExcluding":"4.19.270"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.32","versionEndExcluding":"5.4.229"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.32","versionEndExcluding":"5.10.163"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.32","versionEndExcluding":"5.15.86"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.32","versionEndExcluding":"6.0.16"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.32","versionEndExcluding":"6.1.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.32","versionEndExcluding":"6.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}