devika icon indicating copy to clipboard operation
devika copied to clipboard

Security Updates & Patchs

Open alpernae opened this issue 7 months ago • 0 comments

Description

This pull request includes security updates and patches to address recently discovered vulnerability by @alpernae. The changes aim to enhance the overall security of the application and ensure safe usage for all users.

Vulnerable Filename: https://github.com/stitionai/devika/blob/main/devika.py Vulnerable Line: between 123/127 Vulnerable Endpoint;

@app.route("/api/get-browser-snapshot", methods=["GET"])
@route_logger(logger)
def browser_snapshot():
    snapshot_path = request.args.get("snapshot_path")
    return send_file(snapshot_path, as_attachment=True)

Patch:


# Security Update!!
@app.route("/api/get-browser-snapshot", methods=["GET"])
@route_logger(logger)
def browser_snapshot():
    # TO-DO: Update allowed paths
    allowed_paths = ["/path/to/snapshots/file1.png", "/path/to/snapshots/file2.jpg"]
    snapshot_path = request.args.get("snapshot_path")
    if snapshot_path in allowed_paths:
        return send_file(snapshot_path, as_attachment=True)
    else:
        return jsonify({"code":403,"reason": "Forbidden Path"}), 403

Security Vulnerability Fix:

  • Path Traversal Prevention:
    • Implemented stricter validation for file paths to prevent directory traversal attacks.
    • Ensured that only files within the allowed directory can be accessed.
    • Added checks to sanitize and validate the snapshot_path parameter.

alpernae avatar Jul 04 '24 00:07 alpernae