From 78675924d5ad1706994e1dd5908ba67f9452f24d Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Thu, 23 Apr 2026 13:50:56 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=92=20fix(security):=20resolve=20XSS?= =?UTF-8?q?=20vulnerability=20in=20app.js=20account=20dropdown?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaced `innerHTML` assignment with safe DOM manipulation methods (`createElement`, `textContent`, `src`) to prevent Cross-Site Scripting (XSS) when rendering GitHub account details. Co-authored-by: megawron <52606827+megawron@users.noreply.github.com> --- app.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/app.js b/app.js index 72bc3e8..976e69f 100644 --- a/app.js +++ b/app.js @@ -1169,10 +1169,17 @@ async function fetchInstallations() { installations.forEach(inst => { const item = document.createElement('div'); item.className = 'dropdown-item'; - item.innerHTML = ` - - ${inst.account.login} - `; + + const img = document.createElement('img'); + img.src = inst.account.avatar_url; + img.className = 'account-avatar'; + + const span = document.createElement('span'); + span.textContent = inst.account.login; + + item.appendChild(img); + item.appendChild(span); + item.onclick = (e) => { e.stopPropagation(); ui.accountDropdown.classList.remove('open');