mass_assignment

package
v0.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 3, 2026 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ModuleID    = "mass-assignment"
	ModuleName  = "Mass Assignment"
	ModuleShort = "Detects mass assignment / parameter pollution in JSON APIs"
)

Variables

View Source
var (
	ModuleDesc = `` /* 473-byte string literal not displayed */

	ModuleConfirmation = "" /* 157-byte string literal not displayed */
	ModuleSeverity     = severity.High
	ModuleConfidence   = severity.Firm
	ModuleTags         = []string{"injection", "api", "moderate"}
)

Functions

This section is empty.

Types

type Module

type Module struct {
	modkit.BaseActiveModule
	// contains filtered or unexported fields
}

Module implements the Mass Assignment active scanner.

func New

func New() *Module

New creates a new Mass Assignment module.

func (*Module) CanProcess

func (m *Module) CanProcess(ctx *httpmsg.HttpRequestResponse) bool

CanProcess returns true only for POST/PUT/PATCH with JSON content type.

func (*Module) IncludesBaseCanProcess

func (m *Module) IncludesBaseCanProcess() bool

IncludesBaseCanProcess returns false since we have fully custom CanProcess.

func (*Module) ScanPerRequest

func (m *Module) ScanPerRequest(
	ctx *httpmsg.HttpRequestResponse,
	httpClient *http.Requester,
	scanCtx *modkit.ScanContext,
) ([]*output.ResultEvent, error)

ScanPerRequest tests mass assignment on the given JSON request.

Detection is differential: a privilege key is only reported when injecting it actually changes the response AND the key appears in the response because of our injection (it is absent from the untouched baseline). A benign canary key is sent first; if the endpoint echoes that too, it reflects arbitrary input indiscriminately and we report nothing — this avoids flagging endpoints that simply ignore or blindly mirror unknown fields without honoring them.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL