CVE-2022-50728 in Linux
Сводка
по VulDB • 30.07.2026
В ядре Linux устранена следующая уязвимость:
s390/lcs: Исправлен тип возвращаемого значения функции lcs_start_xmit()
При использовании механизма целостности потока управления в ядре (kernel control flow integrity, kCFI) с компилятором clang (CONFIG_CFI_CLANG), цели косвенных вызовов проверяются на соответствие ожидаемому прототипу указателя на функцию. Это необходимо для обеспечения корректности целевого адреса вызова и смягчения последствий атак типа ROP (Return-Oriented Programming). Если типы не совпадают, возникает ошибка во время выполнения, которая проявляется либо в виде kernel panic (паники ядра), либо принудительного завершения потока. Предлагаемое предупреждение в clang направлено на выявление таких проблем на этапе компиляции, что приводит к следующим сообщениям об ошибке:
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]
.ndo_start_xmit = lcs_start_xmit, ^~~~~~~~~~~~~~ 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]
.ndo_start_xmit = lcs_start_xmit, ^~~~~~~~~~~~~~
Поле ->ndo_start_xmit() в структуре 'struct net_device_ops' ожидает тип возвращаемого значения 'netdev_tx_t', а не 'int'. Необходимо изменить тип возвращаемого значения функции lcs_start_xmit(), чтобы он соответствовал прототипу. Это устранит предупреждение и потенциальный сбой CFI (Control Flow Integrity), если в будущем для архитектуры s390 будет выбран параметр ARCH_SUPPORTS_CFI_CLANG.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.