Një dobësi kritike në paketën @a2ui/web_core lejon ekzekutimin e JavaScript arbitrar kur përdoruesi klikon një buton me një veprim të kontrolluar nga një agjent keqdashës. Problemi, i identifikuar si CVE-2026-10032, ka vlerësim CVSS 9.3 dhe lidhet me mënyrën se si funksioni openUrl trajton adresat që merr.
Sipas njoftimit në GitHub Security Advisories, dobësia prek të tre renderer-at e implementuar në repository-n A2UI: React, Lit dhe Angular. Për skenarin e përshkruar nuk nevojitet ndonjë konfigurim i veçantë, sepse Basic Catalog është i aktivizuar si parazgjedhje.
Ku qëndron problemi
Funksioni openUrl, pjesë e Basic Catalog, ia kalon vlerën args.url drejtpërdrejt funksionit të shfletuesit window.open(). Implementimi kontrollon praninë e adresës dhe disponueshmërinë e funksionit në shfletues, por nuk kontrollon skemën URI të adresës.
Kjo mungesë është thelbësore: një adresë me skemën javascript: mund të kalojë deri te window.open(args.url, '_blank'). Në rrjedhën e përshkruar nga njoftimi, rezultati është ekzekutimi i kodit në origjinën e aplikacionit të viktimës, jo thjesht hapja e një lidhjeje.
Problemi është dokumentuar në implementimin e Basic Catalog në commit-in 23a003248abbf59da6c376ea64ace91d82d209ff. Pika ku adresa i dorëzohet shfletuesit ndodhet në skedarin basic_functions.ts, në rreshtat 428–430.
Si arrin adresa te ekzekutimi
Pika e hyrjes është komponenti Button, i cili pranon një veprim sipas ActionSchema. Kjo skemë lejon veprime të tipit functionCall, përmes të cilave mund të thirret openUrl me argumentin url të përcaktuar nga agjenti.
- Përdoruesi klikon butonin e paraqitur në ndërfaqe.
- Veprimi i lidhur me butonin kalon nëpër mekanizmat e zgjidhjes së vlerave dhe shpërndarjes së veprimeve.
- Kur identifikohet çelësi
call, thirret funksioni përkatës i katalogut. - Argumentet kalojnë në validimin e skemës, përpara se funksioni të ekzekutohet.
- Adresa përfundon te
window.open()pa kontroll të skemës URI.
Pra, klikimi i përdoruesit është pjesë e domosdoshme e skenarit të përshkruar. Agjenti keqdashës furnizon adresën në veprimin e butonit; ekzekutimi ndodh kur përdoruesi e aktivizon atë.
Pse validimi ekzistues nuk e ndalon
Skema Zod e OpenUrlApi kërkon që argumenti url të jetë një string. Ajo përfshin edhe një hap paraprak që konverton në string vlerat që nuk janë undefined. Megjithatë, ky validim nuk dallon skemat URI të lejueshme nga ato problematike.
Për këtë arsye, një URI javascript: e plotëson kushtin e tipit të të dhënave dhe nuk refuzohet. Në implementimin e përshkruar nuk ka as listë skemash të lejuara, as listë skemash të bllokuara. Njoftimi e klasifikon pasojën si XSS të ruajtur ose të reflektuar.
Shtrirja e problemit
React dhe Lit e lidhin veprimin e butonit me ngjarjen e klikimit; Angular gjithashtu renditet si i prekur. Për zhvilluesit që përdorin këta renderer-a, problemi i dokumentuar lidhet me funksionin e përbashkët openUrl në @a2ui/web_core, jo vetëm me një implementim të ndërfaqes.
Informacioni i furnizuar nuk përcakton versione të korrigjuara dhe nuk përmban të dhëna për shfrytëzim aktiv. Ai dokumenton mekanizmin teknik, ndërveprimin e nevojshëm të përdoruesit dhe komponentët e prekur.
Burimi: GitHub Security Advisories

