Sequelize là một ORM dành cho Node.js và io.js. Nó hỗ trợ truy cập một cách dễ dàng đến PostgreSQL, MySQL, MariaDB, SQLite và MSSQL cùng với các tính năng như là relations, transaction, replication …

Các nhà nghiên cứu bảo mật đã phát hiện ra CVE-2023-22578 và CVE-2023-25813, hai lỗi nghiêm trọng nghiêm trọng trong Sequelize được đánh giá với điểm CVSS là 10 và sẽ khiến tất cả người dùng Sequelize phải cảnh giác do khả năng lan rộng của chúng.

Nguyên nhân sâu xa của lỗ hổng CVE-2023-22578 nằm ở chức năng lọc thuộc tính không phù hợp trong thư viện js serialize, kẻ tấn công có thể thực hiện thao tác tiêm nhiễm SQL. Vấn đề này có thể được giảm thiểu bằng cách không chấp nhận đầu vào không đáng tin cậy.

Các nhà phát triển Sequelize đã được giải quyết bằng việc phát hành Sequelize phiên bản 7.0.0-alpha.20 vào ngày 22 tháng 12 năm 2022, nhưng chi tiết kỹ thuật về lỗi này vẫn chưa được cung cấp cho đến thời điểm hiện tại.

Nguyên nhân cốt lõi của lỗ hổng CVE-2023-25813 nằm ở trong cấu trúc lệnh Replacements. Nó cho phép kẻ tấn công có thể truyền các giá trị nguy hiểm như “OR true;” hay “DROP TABLE” thông qua các cấu trúc lệnh Replacements và từ đó sẽ dẫn đến việc thực thi SQL tùy ý. Lỗi này ảnh hưởng đến phiên bản Sequelize trước 6.19.1 và đã được khắc phục khi phát hành phiên bản Sequelize 6.19.2 vào ngày 18 tháng 5 năm 2022. Để giảm thiểu rủi ro, nếu bạn không sử dụng phiên bản Sequelize từ 6.19.2 trở xuống, thì bạn không nên sử dụng các tùy chọn Replacements và tùy chọn Where trong cùng một truy vấn.

Một lỗi nghiêm trọng khác, được theo dõi là CVE-2023-22579 (điểm CVSS là 9,9), được mô tả là lỗ hổng Truy cập tài nguyên bằng cách sử dụng loại không tương thích do quá trình kiểm tra đầu vào của người dùng không đúng cách, do sự cố không an toàn trong các điều kiện GET WHERE.  Nó đã được khắc phục trong các phiên bản 7.0.0-alpha.20 và 6.28.1.

Do tính chất nghiêm trọng của lỗ hổng bảo mật , người dùng nên cập nhật lên phiên bản mới nhất càng sớm càng tốt để giảm thiểu các mối đe dọa có thể xảy ra.