Một công ty khởi nghiệp có trụ sở tại Berlin đã phát hiện ra lỗ hổng thực thi mã từ xa (RCE) và lỗi kịch bản chéo trang (XSS) trong Pling, một công cụ được sử dụng bởi nhiều thư viện ứng dụng được xây dựng trên nền tảng này. Lỗ hổng này có thể cho phép thực thi mã JavaScript trong ngữ cảnh của người dùng khác. Các trang web bị ảnh hưởng bao gồm một số thư viện ứng dụng mã nguồn mở hàng đầu, chẳng hạn như store.kde.org, appimagehub.com, gnome-look.org, xfce-look.org và pling.com, cùng nhiều trang khác.
Positive Security, công ty đã tìm ra các lỗ hổng, nói rằng các lỗi vẫn còn trong mã Pling và các nhà bảo trì của nó đã không phản hồi các báo cáo về lỗ hổng bảo mật.
Đầu năm nay, chúng tôi đã xem xét cách các ứng dụng máy tính để bàn phổ biến xử lý các URI do người dùng cung cấp và tìm thấy các lỗ hổng thực thi mã trong một số trong số đó. Một trong những ứng dụng tôi đã kiểm tra là Cửa hàng ứng dụng KDE Discover, hóa ra lại xử lý các URI không đáng tin cậy theo cách không an toàn (CVE-2021-28117, KDE Security Advisory).
Trên đường đi, tôi nhanh chóng tìm thấy một số lỗ hổng nghiêm trọng hơn trên các thị trường phần mềm miễn phí khác.
Vẫn có thể khai thác một XSS có từ ngữ với khả năng tấn công chuỗi cung ứng trong các thị trường dựa trên Pling và RCE theo ổ đĩa ảnh hưởng đến người dùng ứng dụng PlingStore.
Pling tự giới thiệu mình là một chợ trực tuyến dành cho những người sáng tạo tải lên các chủ đề và đồ họa cho máy tính để bàn Linux, cùng nhiều thứ khác, với hy vọng kiếm được tiền từ những người ủng hộ. Nó gồm hai phần: mã nguồn cần thiết để vận hành chợ trực tuyến của riêng bạn và một ứng dụng dựa trên Electron mà người dùng có thể cài đặt để quản lý các chủ đề của họ từ chợ Pling. Mã web chứa lỗ hổng XSS, trong khi ứng dụng khách chứa cả lỗ hổng XSS và lỗ hổng thực thi mã từ xa (RCE). Pling cung cấp năng lượng cho một số trang web, từ pling.com và store.kde.org đến gnome-look.org và xfce-look.org.
Vấn đề cốt lõi nằm ở chỗ nền tảng Pling cho phép thêm các khối đa phương tiện ở định dạng HTML, ví dụ như nhúng video YouTube hoặc hình ảnh. Mã được thêm vào thông qua biểu mẫu không được kiểm tra đúng cách, cho phép mã độc được ngụy trang dưới dạng hình ảnh và đặt thông tin vào thư mục để thực thi mã JavaScript khi được xem. Nếu người dùng có tài khoản có thể truy cập thông tin này, thì có thể thực hiện các hành động trong thư mục thay mặt người dùng đó, bao gồm cả việc thêm lệnh gọi JavaScript vào các trang của họ, từ đó tạo ra một loại sâu máy tính.
Hơn nữa , một lỗ hổng đã được phát hiện trong ứng dụng PlingStore, được viết bằng nền tảng Electron, cho phép nó duyệt qua các thư mục OpenDesktop mà không cần trình duyệt và cài đặt các gói được tìm thấy ở đó. Lỗ hổng này trong PlingStore cho phép mã của nó được thực thi trên hệ thống của người dùng.
Khi ứng dụng PlingStore đang chạy, tiến trình ocs-manager cũng được khởi động, chấp nhận các kết nối cục bộ thông qua WebSocket và thực thi các lệnh như tải và khởi chạy ứng dụng ở định dạng AppImage . Các lệnh này được cho là do ứng dụng PlingStore truyền đi, nhưng trên thực tế, do thiếu xác thực, một yêu cầu tới ocs-manager có thể được gửi từ trình duyệt của người dùng. Nếu người dùng mở một trang web độc hại, nó có thể thiết lập kết nối với ocs-manager và khiến mã độc được thực thi trên hệ thống của người dùng.
Một lỗ hổng XSS cũng đã được báo cáo trong thư mục extensions.gnome.org; trong trường chứa URL của trang chủ plugin, bạn có thể chỉ định mã JavaScript ở định dạng "javascript:code" và khi bạn nhấp vào liên kết, mã JavaScript được chỉ định sẽ được thực thi thay vì mở trang web dự án.
Một mặt, vấn đề này mang tính suy đoán nhiều hơn , vì việc kiểm duyệt liên quan đến vị trí trong thư mục extensions.gnome.org, và cuộc tấn công không chỉ yêu cầu mở một trang cụ thể mà còn phải nhấp chuột vào liên kết. Mặt khác, có thể trong quá trình xác minh, người kiểm duyệt muốn truy cập trang web của dự án, bỏ qua biểu mẫu liên kết và thực thi mã JavaScript trong ngữ cảnh tài khoản của họ.
Cuối cùng, nếu bạn muốn tìm hiểu thêm, bạn có thể xem chi tiết tại liên kết sau.