Skip to content

Path traversal + unauth file write in dev server (--serve) #554

Description

@Ikram-4

Description: Two issues in marmite --serve dev server (default 0.0.0.0:8000, no auth). Static site/ deployments unaffected.

  1. CWE-22 Arbitrary file read src/server.rs:187 decode(request.url()) src/server.rs:299-304 url_without_query / request_path = url[1..] — no .. validation src/server.rs:306 output_folder.join(&request_path) src/server.rs:309-310 is_file() / File::open()

  2. CWE-306 + CWE-22 Unauthenticated arbitrary file write src/server.rs:455 handle_create_content -> src/content.rs:1070-1073 path.push(dir) / create_dir_all / File::create src/server.rs:652 handle_clone_content -> src/content.rs:1306 String::from(new_slug) unsanitized / src/content.rs:1315 parent.join(format!) / 1321 fs::copy src/server.rs:600 handle_move_content -> src/content.rs:1361-1380 only .md check / 1370 content_folder.join(new_filename) / 1379 parent.join / 1389 fs::rename src/server.rs:872-914,941-963 handle_file_api / 878 input_folder.join(rel_path) / 914,958 fs::write src/server.rs:1108-1139 handle_put_config_raw / 1131 fs::write(config) -> src/site.rs:2697-2710 handle_file_mappings / 2703 abs source allowed / 2709 output_folder.join(dest)

Version: 0.4.2

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions