Mercurial > dropbear
view test/test_aslr.py @ 1885:5d8dbb6fdab7
Fix SSH_PUBKEYINFO, limit characters, add tests
We fix a bad_bufptr() failure from a previous commit. We now limit
the allowed characters to those that will definitely be safe
in a shell. Some scripts/programs may use arbitrary environment
variables without escaping correctly - that could be a problem
in a restricted environment.
The current allowed set is a-z A-Z 0-9 .,_-+@
This also adds a test for SSH_PUBKEYINFO, by default it only runs
under github actions (or "act -j build").
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Wed, 16 Mar 2022 17:17:23 +0800 |
parents | 1c9215154d4a |
children |
line wrap: on
line source
from pathlib import Path import sys from test_dropbear import * def test_reexec(request, dropbear): """ Tests that two consecutive connections have different address layouts. This indicates that re-exec makes ASLR work """ map_script = (Path(request.node.fspath).parent / "parent_dropbear_map.py").resolve() # run within the same venv, for python deps activate = own_venv_command() cmd = f"{activate}; {map_script}" print(cmd) r = dbclient(request, cmd, capture_output=True, text=True) map1 = r.stdout.rstrip() print(r.stderr, file=sys.stderr) r.check_returncode() r = dbclient(request, cmd, capture_output=True, text=True) map2 = r.stdout.rstrip() print(r.stderr, file=sys.stderr) r.check_returncode() print(map1) print(map2) # expect something like # "563174d59000-563174d5d000 r--p 00000000 00:29 4242372 /home/matt/src/dropbear/build/dropbear" assert map1.endswith('/dropbear') or map1.endswith('/dropbearmulti') a1 = map1.split()[0] a2 = map2.split()[0] print(a1) print(a2) # relocation addresses should differ assert a1 != a2