Software Securityhome
Fix a findingSearch
Tag

Unsafe deserialization

3 guides tagged Unsafe deserialization, grouped by topic, with the SDLC phase and role each is written for.

SDLC phases
Roles

Application security

2 guides

AI security

1 guide

Practice

Browser lab · Foundation · 20–30 min

SQL injection lab: Separate SQL structure from data with sqlite3

A product search builds its SQL by formatting the shopping category and search term straight into the query string, so a crafted term can read other tables or return every row. Repair it to use sqlite3 parameters, while keeping the legitimate search working.

Browser lab · Practitioner · 25–40 min

OS command injection lab: Run git without a shell

A repository browser pastes request values into a git command line for the shell, so a semicolon starts a second command and a leading dash becomes a git option. Run git directly, with each value as one argument.

Browser lab · Practitioner · 25–40 min

SSTI lab: Render a welcome banner without template injection

A welcome banner is built by concatenating the user’s display name into a Jinja template string, so a crafted name is evaluated as a template: it runs expressions, bypasses autoescaping and reads the render context. Repair render_welcome so the name is data, not template source.

Browser lab · Practitioner · 25–40 min

XXE lab: Parse an uploaded invoice without resolving external entities

An invoice importer parses uploaded XML with a parser that resolves external entities, so a crafted DOCTYPE reads a local file into the response (XXE). Repair parse_invoice so the parser never resolves external entities, loads no DTD and makes no network request.

Browser lab · Practitioner · 25–40 min

Pickle deserialization lab: Load a session token without pickle

A session loader parses JSON but falls back to pickle for “legacy” tokens, so a crafted pickle runs code when it is loaded. Repair load_token to parse JSON only and validate it against a fixed schema, and leave no path that unpickles untrusted bytes.

Fix card · CWE-502

Insecure deserialization

Insecure deserialization happens when a service rebuilds objects from bytes it received from a client, letting the input choose which types are created and what runs while they are built.

All tags, lifecycle stages and roles

Find your next answer

Type to search. Search runs in your browser.

Searches run in your browser, but the host can infer them from the index files they load. The address shows your search so you can bookmark or share it.