Scroll to navigation

CHECKSEC(1) General Commands Manual CHECKSEC(1)

NAME

checkseccheck executable and kernel security properties

SYNOPSIS

checksec [--help] [--version] [--output table|xml|json|yaml] [--libc path] [--no-banner] [--no-headers] [--no-warnings] [--color auto|always|never] command [command-options]

DESCRIPTION

checksec is a Go implementation of the checksec utility. It inspects ELF binaries and the running kernel for common hardening features such as RELRO, NX, PIE, RPATH/RUNPATH, stack canaries, Clang CFI hints, and fortify-able libc usage. Results can be printed as a table or serialized for machine consumption.

GLOBAL OPTIONS

, --help
Display help and exit.
, --version
Show version and exit.
, --output=table|xml|json|yaml
Set output format. Default is .
, --libc=path
Set libc location (useful for checks on offline/embedded filesystems).
Disable the startup banner.
Disable table headers.
Suppress warning messages (e.g., missing libc, unreadable symbol tables).
=auto|always|never
Control color output. Default is (color when writing to a terminal). Use to preserve color through pipes.

COMMANDS

path
Inspect a single ELF file.
directory
Inspect all ELF files in a directory. Use -r, --recursive to recurse into subdirectories.
path
Report fortified/fortifiable libc calls in a file.
pid
Report fortified/fortifiable libc calls for a running process ID.
[config]
Inspect kernel hardening via /proc/config.gz , /boot/config-<release> , or a supplied config path.
pid
Inspect the executable of a running process ID.
Inspect all running processes. Kernel threads and processes without readable /proc/<pid>/exe are skipped.

COMPATIBILITY NOTES

  • The legacy v2/bash options such as , , and are not the primary v3 interface.
  • Use v3 subcommands instead (for example, checksec file /path/to/bin or checksec procAll).
  • If you want compact output similar to older invocations, use (and optionally ).

EXAMPLES

|

DIAGNOSTICS

Most commands exit non-zero on fatal errors (e.g., unreadable files). The procAll command skips processes it cannot read and continues.

SEE ALSO

hardening-check(1), feature_test_macros(7), gcc(1), ld(1)

HISTORY

checksec was originally written by Tobias Klein. The current project is maintained by Brian Davis <slimm609@gmail.com>.

February 2026 Linux 6.4.0-150700.53.73-default