Lỗ hổng 22 tuổi được báo cáo trong Thư viện cơ sở dữ liệu SQLite được sử dụng rộng rãi

Lỗ hổng cơ sở dữ liệu SQLite

Một lỗ hổng có mức độ nghiêm trọng cao đã được tiết lộ trong thư viện cơ sở dữ liệu SQLite, được giới thiệu như một phần của sự thay đổi mã có niên đại từ tháng 10 năm 2000 và có thể cho phép kẻ tấn công phá vỡ hoặc kiểm soát các chương trình.

Được theo dõi là CVE-2022-35737 (điểm CVSS: 7,5), sự cố 22 tuổi ảnh hưởng đến các phiên bản SQLite từ 1.0.12 đến 3.39.1 và đã được giải quyết trong phiên bản 3.39.2 được phát hành vào ngày 21 tháng 7 năm 2022.

Nhà nghiên cứu Andreas Kellas của Trail of Bits cho biết: “CVE-2022-35737 có thể khai thác trên các hệ thống 64 bit và khả năng khai thác phụ thuộc vào cách chương trình được biên dịch.

“Việc được xác nhận khi thư viện được biên dịch mà không có mã ngăn xếp, nhưng không được xác nhận khi có mã lệnh ngăn xếp và từ chối dịch vụ được xác nhận trong mọi trường hợp.”

Lỗ hổng cơ sở dữ liệu SQLite

Được lập trình bằng C, SQLite là công cụ cơ sở dữ liệu được sử dụng rộng rãi nhất, được bao gồm theo mặc định trong Android, iOS, Windows và macOS, cũng như các trình duyệt web phổ biến như Google Chrome, Mozilla Firefox và Apple Safari.

Lỗ hổng được Trail of Bits phát hiện liên quan đến lỗi tràn số nguyên xảy ra khi các đầu vào chuỗi cực lớn được chuyển dưới dạng tham số cho việc triển khai SQLite của các hàm printf, do đó, sử dụng một hàm khác để xử lý định dạng chuỗi (“sqlite3_str_vappendf “).

Xem tiếp:   Lỗi 0 ngày mới của Chrome đang bị tấn công - Cập nhật trình duyệt của bạn càng sớm càng tốt!

Tuy nhiên, việc vũ khí hóa thành công ngân hàng lỗ hổng với điều kiện tiên quyết là chuỗi chứa các kiểu thay thế định dạng% Q,% q hoặc% w, có khả năng dẫn đến sự cố chương trình khi dữ liệu do người dùng kiểm soát được ghi vượt quá giới hạn của ngăn xếp- bộ đệm được cấp phát.

“Nếu chuỗi định dạng chứa ‘!' ký tự đặc biệt để kích hoạt tính năng quét ký tự unicode, sau đó có thể thực hiện mã tùy ý trong trường hợp xấu nhất hoặc khiến chương trình bị treo và lặp (gần như) vô thời hạn, “Kellas giải thích.

Lỗ hổng này cũng là một ví dụ về một kịch bản từng được coi là không thực tế trong nhiều thập kỷ trước – phân bổ chuỗi 1GB làm đầu vào – được cho là khả thi với sự ra đời của các hệ thống tính toán 64-bit.

“Đó là một lỗi có thể không phải là lỗi vào thời điểm nó được viết (có từ năm 2000 trong mã nguồn SQLite) khi các hệ thống chủ yếu là kiến ​​trúc 32-bit,” Kellas nói.

Check Also

JumpCloud đổ lỗi cho diễn viên ‘Nhà nước quốc gia tinh vi’ vì vi phạm an ninh

Ngày 18 tháng 7 năm 2023THNBảo mật dữ liệu / Tấn công mạng Hơn một …