Commits
- Commit:
b62a1edfe3cff4df2c3931d28a5f5dd58ed9406d- From:
- rsadowski <rsadowski@openbsd.org>
- Date:
relayd: reject obs-fold to prevent parser differentials (RFC 9112 5.2)
Replace silent kv_extend normalisation with an unconditional reject.
RFC 9112 5.2 permits rejection; it is safer than SP replacement
for a forwarding proxy and handles both request and response direction.
kv_extend is therefore no longer required.
Reported by Stuart Thomas, OK kirill@
- Commit:
36dd1e7a7bf9f6dccf52a294d7d29221aef265f4- From:
- rsadowski <rsadowski@openbsd.org>
- Date:
relayd: allow explicit paths for certificates, keys and OCSP staples
Extend the "keypair" keyword in relayd.conf to support optional explicit paths.
Previously, relayd enforced a naming convention, looking up files in /etc/ssl
and /etc/ssl/private based on the keypair name.
This change allows other applications to manage their certificates without
having to comply with relayd's internal naming logic.
Input and OK kirill@, help form tb@
- Commit:
6b5c4000434cc5dc67e202d8aede2f543b5b2bf3- From:
- rsadowski <rsadowski@openbsd.org>
- Date:
Standardize logging with bgpd
OK claudio@
- Commit:
4111100134779c504b2e09d76dd2b79569a5a550- From:
- rsadowski <rsadowski@openbsd.org>
- Date:
fix scan-build dead stores findings
OK stsp
- Commit:
37603cbd06eaaba2570979c140c6c94d51279148- From:
- deraadt <deraadt@openbsd.org>
- Date:
For IMSG_BINDANY, bnd.bnd_proc wasn't range checked to ensure it is positive.
As a result IF the other side of the privsep was succesfully exploited, it
could then send such a flawed message and cause a cause an array bounds
violation over the privsep boundary.
Reported by S. Ai, H. Lefeuvre, Systopia team
ok claudio
- Commit:
21645604d9bdeecb445a3c36eb1b1e997bf0801e- From:
- claudio <claudio@openbsd.org>
- Date:
Ensure that string buffers are '\0' terminated when handling them in
the privileged parent.
Again code does not expect strings that are not terminated and by default
nothing sends such strings but lets fix this bug anyway.
Reported by S. Ai, H. Lefeuvre, Systopia team
OK tb@ benno@
- Commit:
f30efb9a7b86a2912c9176374b21e3268cbd1fe2- From:
- martijn <martijn@openbsd.org>
- Date:
unveil the agentx socket path. This was probably broken with adding unix
sockets to unveil.
reported by pascal@
OK sthen@ benno@
- Commit:
c4efe747621091eebe4473e6bf136cb19c94288f- From:
- tb <tb@openbsd.org>
- Date:
relayd: add support for client certificates
This feature has been requested many times over the years. Various patches
were provided by Asherah Connor, Rivo Nurges, Markus Läll and maybe others.
These patches always stalled for various reasons.
From Sören Tempel, mostly based on Asherah's latest patch.
ok florian tb
- Commit:
cb6a69b94e073f2305fbf62c884f1ad6edbf643d- From:
- op <op@openbsd.org>
- Date:
remove ssl_init()
it's a noop; nowadays both LibreSSL and OpenSSL libcrypto and libssl
initialize themselves automatically before doing anything.
ok tb
- Commit:
e3222bf973feb8ff7ce93efc4477873b9b41d5da- From:
- mbuhl <mbuhl@openbsd.org>
- Date:
always call va_end.
ok tb
- Commit:
8a3d3d28259b5c7655c059ee491cf8ade4c0df99- From:
- benno <benno@openbsd.org>
- Date:
Move the daemon() call in the parent process from after forking the
children to just before. That way the parent disasociates from its
controling terminal and shell, but not from its children.
Remove the dup2() bits that were copied from daemon() to solve the
problem that the children still had the stdio fds open. This is now
done in the parent earlier.
Remove the setsid() and setpgid(). It is unclear what their intent
was, but they dont seem to make sense, as daemon() covers this as well
and there seems to be no reason the cildren procs need to do that.
ok claudio@ bluhm@
- Commit:
6d9ea5e778a9646b28e4429add33fe8abac6f14b- From:
- dv <dv@openbsd.org>
- Date:
relayd(8): change agentx_getsock to return void
Only has one return value and it's never checked.
ok martijn@, tb@
- Commit:
74ad078bd5c91cde0cb654e1030462ef162f4e68- From:
- beck <beck@openbsd.org>
- Date:
Change the error reporting pattern throughout the tree when unveil
fails to report the path that the failure occured on. Suggested by
deraadt@ after some tech discussion.
Work done and verified by Ashton Fagg <ashton@fagg.id.au>
ok deraadt@ semarie@ claudio@
- Commit:
071bd6628c13c10f7f96bcb2857798bcf93b28b3- From:
- deraadt <deraadt@openbsd.org>
- Date:
these programs (with common ancestry) had a -fno-common problem related
to privsep_procid.
ok mortimer
- Commit:
10e5e15af050286c1a86bd506edea88710e5fc7e- From:
- mestre <mestre@openbsd.org>
- Date:
Stop deleting the control socket on daemon shutdown, like we did on other
daemons. This avoids giving an additional permission (in this case unveil(2)
"c") to the daemon just to be able to delete the socket and we already discussed
in the past that leaving that file behind doesn't cause any problems.
Discussed with deraadt@ rob@ florian@
OK rob@ benno@ deraadt@
- Commit:
04a2f9536b27f11bd789df2ae153cc14c073ce4b- From:
- martijn <martijn@openbsd.org>
- Date:
Rewrite the agentx code of relayd. This new framework should allow us
to add new objects easier if so desired and should handle a lot more
corner-cases.
This commit should also fix the following:
- On most (all) tables it omits the *Entry elements, making it not map to
OPENBSD-RELAYD-MIB.txt.
- sstolen returns the size of the sockaddr_in{,6}, instead of the
sin{,6}_addr resulting in garbage data to be put in the ip-field.
- relaydSessionPortIn and relaydSessionPortOut are swapped
- relaydSessions only uses relaydSessionIndex, while
OPENBSD-RELAYD-MIB.txt says it should have 2 indices
- miscellaneous minor things related to the AGENTX-protocol, like wonky
index handeling and returning NOSUCHINSTANCE where NOSUCHOBJECT
should be returned, etc.
This commit does remove traps, but it's large enough as is and I intent
on adding it soon(tm). It also deprecates the snmp keyword in favour of
an agentx keyword. The snmp keyword is still available, but will be
removed in the future.
Tweaks and OK denis@ on the relayd parts
Tweaks and OK claudio@ on the agentx parts
"Get it in" deraadt@
- Commit:
5f37963a3fc88e24362c370b442cd8c00ec4c32d- From:
- mestre <mestre@openbsd.org>
- Date:
add unveil(2) again
this allows reading from anywhere in the filesystem (in order to read the
config file and those ones included from it), but also executing, which I
missed from my last attempt, because it's required for "check script(s)".
even though it's a broad permission, and the main proc cannot be pledged due to
forbidden ioctls, then this at least prevents it from creating/writing/deleting
files which is not required here.
OK benno@ a long time ago
- Commit:
738b3cc9ee5e087ffe860159c9e5c5c0bd4d1d7e- From:
- rob <rob@openbsd.org>
- Date:
Add support for binary protocol health checking. Feedback and guidance from
benno@ and reky@. Man page tweaks from jmc@.
ok benno@
- Commit:
bb2805c1367c443daabaa1ad8b5aa184c8745369- From:
- sthen <sthen@openbsd.org>
- Date:
revert r1.175 which added unveil to relayd; "check script" needs access to the
filesystem.
"Well the first step is to back the commit out" deraadt@
- Commit:
0c91187da1707fc65869cc8b4fd03050eac43f3d- From:
- reyk <reyk@openbsd.org>
- Date:
Add support for OCSP stapling
Many thanks to Bruno Flueckiger who independently sent a very similar
patch. He also tested the one I'm committing that it works as
expected.
OK tb@
- Commit:
9261e0d8173c20551ba0953a8492dfa0edb4568b- From:
- reyk <reyk@openbsd.org>
- Date:
Add support for SNI with new "tls keypair" option to load additional certs.
Tested by many (thanks!)
Feedback & OK rob@
- Commit:
fe4913ec641bced939aab727cbc4124c761bdde9- From:
- reyk <reyk@openbsd.org>
- Date:
Move the relay keys/certs into a separate global list and look them up by id.
Moving the certs out of the relay struct will help to add multiple SNI certs.
Tested by many users (thanks!)
Feedback & OK rob@
- Commit:
55ca94a79e8d3e5f12c1ad99051096e7bfd742a1- From:
- reyk <reyk@openbsd.org>
- Date:
Move relay_load_*() functions into relayd.c
Pass the *env as an explicit argument instead of using the global
pointer: The relay_load_certfiles() function is called early before
the *env is set up. This does not change anything in the current code
as *env is not used by anything in the function (not even
ssl_load_key() that is taking it as an argument) but it will be needed
by upcoming changes for SNI.
Ok rob@
- Commit:
62ee3f1b862dfa38fbdf7019ed8fa4eef0a2824b- From:
- reyk <reyk@openbsd.org>
- Date:
Fix and tweak websocket upgrade handling.
- Don't expect the Connection header to equal Upgrade, it may include Upgrade
- Reshuffle the code to check the Upgrade/Connection headers in one place
Reported and tested by Rivo Nurges
OK and input from benno@
Cvs: ----------------------------------------------------------------------
- Commit:
073ecc1dafca5526d3b2329c641035947aa04c8f- From:
- mestre <mestre@openbsd.org>
- Date:
restrict filesystem access to read only on main process via unveil(2)
ok benno@ deraadt@
