BACnet Stackにおける未定義、未指定、または実装定義の動作への依存に関する脆弱性
タイトル BACnet Stackにおける未定義、未指定、または実装定義の動作への依存に関する脆弱性
概要

BACnet Stackは、組み込みシステム向けのBACnetオープンソースプロトコルスタックCライブラリです。バージョン1.4.3以前のsrc/bacnet/bacint.c内のdecode_signed32()関数は、4バイトのAPDUから符号付き32ビット整数を符号付きの左シフトを使って復元していました。4バイトのいずれかにビット7がセットされている場合(値が0x80以上の場合)、左シフト操作によって符号付きint32_tがオーバーフローし、C標準において未定義動作が発生します。この問題により、ビット7がセットされた符号付き整数プロパティ値を含む任意のBACnet入力に対してUndefinedBehaviorSanitizerが1分間に数千回検出します。この脆弱性はバージョン1.4.3で修正されました。

想定される影響 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアの一部が停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
対策

正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。

公表日 2026年4月21日0:00
登録日 2026年4月30日12:28
最終更新日 2026年4月30日12:28
CVSS3.0 : 低
スコア 3.7
ベクター CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
影響を受けるシステム
BACnet Stack
BACnet Stack 1.4.3 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
変更履歴
No 変更内容 変更日
1 [2026年04月30日]
  掲載
2026年4月30日12:28

NVD脆弱性情報
CVE-2026-40279
概要

BACnet Stack is a BACnet open source protocol stack C library for embedded systems. Prior to 1.4.3, decode_signed32() in src/bacnet/bacint.c reconstructs a 32-bit signed integer from four APDU bytes using signed left shifts. When any of the four bytes has bit 7 set (value ≥ 0x80), the left-shift operation overflows a signed int32_t, which is undefined behavior per the C standard. This is flagged thousands of times per minute by UndefinedBehaviorSanitizer on any BACnet input containing signed-integer property values with high-bit-set bytes. This vulnerability is fixed in 1.4.3.

公表日 2026年4月22日2:16
登録日 2026年4月25日4:03
最終更新日 2026年4月28日4:49
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
cpe:2.3:a:bacnetstack:bacnet_stack:*:*:*:*:*:*:*:* 1.4.3
関連情報、対策とツール
共通脆弱性一覧