chore(deps): update ghcr.io/sebadob/rauthy docker tag to v0.37.1 #571
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
high priority
invalid
L
low priority
M
medium priority
needs refinement
optional
question
S
security
technical improvement
UX Improvement
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
local-it/mitgliederverwaltung!571
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "renovate/ghcr.io-sebadob-rauthy-0.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
0.36.1→0.37.1Release Notes
sebadob/rauthy (ghcr.io/sebadob/rauthy)
v0.37.1Compare Source
Security
Ephemeral Clients
The lookup of an ephemeral client (CIMD) document fetched any
client_idURL with the shared HTTPclient: it followed redirects, used system proxies, connected to loopback, private and link-local
addresses (including cloud metadata endpoints) and read the body without a size limit. Since the
client_idcomes from an unauthenticated request, this was an SSRF and memory exhaustion vector.The lookup now uses a dedicated fetcher that follows redirects only to
https(at most 5), neveruses a proxy, resolves the host itself and only connects to the public addresses it verified (IP
literals, also as a redirect target, are checked before connecting, IPv4-mapped, NAT64, SIIT, 6to4
and Teredo forms included), caps the document size and limits concurrent lookups. Errors returned to
the client are generic, details are logged.
#1778
#1780
Logout
Up until now, when a token was refreshed, the new
refresh_tokendid not carry the original sessionID. This makes sense when you see it in a way that this refresh was done independently from any
session at all. It's usually a client backend that triggers it. However, dropping the
sidin thiscase made it impossible to also revoke refresh tokens on session logout, if the user had a long
running session that outlived token refreshes. This version now adds the
sidto all newly issuesrefresh tokens, which means when you set
access.token_revoke_on_logout = true, all refresh tokensthat may be issued in the future, that also originiated from "this" session, will be revoked as
well. This does not happen if the session expires on its own. Only when a dedicated logout was
requested.
#1775
Changes
nameinid_tokenRauthy always sent
given_nameandfamily_nameas specific values (and OIDC standard claims)inside the
id_token. But,namealso exists. It's basically the concanenation of all name valuesthe IdP knows, and any client can build it on its own. Rauthy never added this field because I think
it's actually just token bloat. It's a copy & paste of values that exist anyway.
However, there are apps out there that expect the
namefield being present, and that do not acceptor even look for the specific values. For instance, this was an issue
with Netbird. Even though I still think this value is unnecessary overhead, I
added it to the
id_tokenfor broader compatibility. This means e.g. Netbird as well is fixed, anda login via Rauthy as Generic OIDC provider works flawlessly.
#1771
Ephemeral Client
default_scopesEphemeral clients get configurable
default_scopes. Until now, every ephemeral client (CIMD) gotthe full
allowed_scopeslist as its default scopes, so each token carried all of them no matterwhat the client requested.
#1777
Bugfix
0.37.0came with a regression when you were using Forward Authentication. As part of the bigoevrall security hardening process, the
AuthCodewas bound to thestatewhen redirecting viaforward auth. The issue was, that a link on the login-side was frogotten, which made forward auth
fail all the time (the saved state is not needed for any other flow).
#1770
0.37.0broucht another regression in terms oflocalhostredirects. When you wanted to matchany port during callbacks, you could write
http://localhost:*as an acceptedredirect_uri.As part of the security hardening, redirect URIs are now validated much stricter, and this syntax
does not work anymore. It still does not, but the original issue is fixed. To get it back, enable
access.rfc_8252_enable = true. If you did, you can set aredirect_urilikehttp://localhost/callback, at any port (as long as its on loopback) is accepted.#1769
ui_locales_supportedon the.well-known/openid-configurationendpoint was returning an invalidvalue
zhhans. This should have beenzh-Hans, and it made some parser fail (e.g. SonarQube).The returned values here are fixed and have the correct format, and they also respect you config
of
i18n.filter_lang_common, and shows only filtered values.#1772
default, among them
enabled, the token lifetimes,restrict_group_prefix, customclaims,allowed_resourcesanddefault_aud. A disabled dynamic client could enable itself again thisway (not that crucial. It could also easily re-register anyway). These values are now kept, and a
disabled dynamic client gets a
403instead. A self-update can no longer add a grant type theclient does not have yet: it may keep or narrow its
grant_types, anything else is rejected witha
400andinvalid_client_metadata. Otherwise a client restricted to e.g.authorization_codecould add
client_credentialsand mint tokens carrying the kept admin-setdefault_audandclaims. Grant types beyond the current ones need an admin.All of this is not really security-related, it's good practice. When DCR is enabled, any rejected
client can easily re-register a fresh one anway.
#1774
v0.37.0Compare Source
BREAKING - VERY IMPORTANT (if you run a HA cluster)
IF YOU DO NOT FOLLOW THE STEPS BELOW, YOU MIGHT END UP WITH INCONSISTENT DATA!
CREATE A BACKUP BEFORE YOU UPGRADE!
If you run a single instance, you can ignore this block. However, if you run a HA deployment, you
MUST do a full shutdown of the cluster! It is absolutely crucial that you MUST NOT do a
ROLLING RELEASE! If you do it anyway, you will most probably end up with inconsistent cache
data, or even a crashing application.
The reason for this is a major internal rework of Hiqlite with lots of optimizations and
improvements. This may be annoying right now, but makes everything a lot more maintainable,
future-proof, and more robust. We also gained a bit more efficiency and speed for the Raft network.
Your cache data will be cleaned up on restart, when you start this new version for the first time.
Rauthy does as much as possible automatically. You only MUST GUARANTEE that you do a full
cluster shutdown with the old version, before you then start this new one!
There are as many safeguards and checks as possible in place. It "should" not be possible to screw
this up, theoretically. If Rauthy detects that it is a HA cluster, it tries to fetch the version
from other nodes before doing the programmatic migration, and it tries to catch all possible cases,
but it's not guaranteed that I thought of all of them. But this is NOT foolproof! You can definitely
construct situations where even these checks will fail. This should not happen during normal
operation, but it is possible.
Once again: CREATE A BACKUP BEFORE YOU UPGRADE!
Howto (HA cluster)
As mentioned already, you only need to do this for an HA deployment. Rauthy also sets the
auto-migration helper ENV var automatically. This is
HQL_CACHE_WAL_AUTO_MIGRATE=true. If set,Hiqlite will attempt to do an auto-cleanup of the cache data (if necessary). As long as everything
goes to plan, you don't need to do anything else than not doing a rolling release.
HOWEVER, if anything goes wrong, and you end up in some floating state, you also have a 2nd
option:
HQL_CACHE_WAL_FORCE_MIGRATE=true. If you set this ENV var, Hiqlite will ALWAYS do thecleanup, even if it detects that the data structure is already on the new version.
Security
Apart from the general security hardening (see below), there was one actual security issue. It was
possible to get an open redirect during password resets, when you craft a manual API request. This
had no direct security impact, but it could have been abused in a phishing campaign. A security
advistory will be released in the upcoming weeks.
Breaking
RFC 9068
at+jwtToken TypeAccess Tokens are issued with a JWT header
typofat+jwtnow, as specified inRFC 9068. Rauthy's Access Tokens have been RFC
9068-shaped for a long time already, but the header still used the generic
JWT, which made itimpossible for a resource server to tell an Access Token apart from an ID Token by the header alone.
ID, Refresh and Logout Tokens are unchanged and keep using
JWT.This is only breaking for downstream resource servers that check the header
typfor exactlyJWT.Rauthy itself accepts both values, so Access Tokens issued before an update stay valid until they
expire.
rauthy-clientacceptsat+jwtstarting withv0.14.3; update the client before updatingRauthy to avoid an interruption in service.
#1651
Config Values Renamed
There were config values that had typos. They were not fixed earlier, because that would have been a
breaking change for each single one of them. Because this version comes with improved lifetime or
duration configuration, we needed to rename quite a few of them anyway, so it made sense to do all
of these in one batch. Make sure to update your config, if you used any of these. Values in all
capital letters and snake_case are env vars.
All the next values have been reworked. Some of them have been renamed, but all of them have their
value type changed. This was done to make any duration-specifying value self-documenting. You can
provide them either as a integer, and they will be interpretet as seconds, or with a unit like
'120s','3h', and so on. When given as a String, Rauthy parses the given input into a type-safeDuration. The input can have the following suffixes:s-> secondsm-> minutesh-> hoursd-> daysw-> weeksy-> years#1739
SMTP Setup Rework
Setting up SMTP connections was found to be a bit misleading or hard to debug. By default, implicit
TLS will always be chosen, and the
smtp_portwill always be selected automatically (if notoverwritten via
smtp_port) depending on the TLS mode.Removed:
email.starttls_onlyemail.danger_insecureAdded:
email.smtp_tls_modeThe values
email.starttls_only(misleading naming) andemail.danger_insecurewere removed. Newis now
email.smtp_tls_modewith the goal to reduce any misleading naming or unexpected behavior.There is no automatic fallback from TLS to STARTTLS (since quite a few versions), even though the
docs about it were outdated. You configure the exact mode you want to use for the connection, so you
cannot get confused. The default implicit TLS will be the correct mode for almost all SMTP servers.
#1721
Forward Auth
redirect_stateThe
redirect_statequery param used in Forward Auth is now limited to codes of 300 - 599. Bydefault, a success will always return a 200 anyway, so there is no need to overwrite it. The reason
is to prevent dynamic proxy configs from potentially forwarding this value from a client, which
tries to spoof a value that usually only the reverse proxy should ever set.
#1728
Stricter
redirect_uriValidationClient redirect URIs are validated more strictly now. A redirect URI must not contain:
#), as required byRFC 6749 §3.1.2. This rejects hash-router
URIs like
https://app.example.com/#/callbackas well.,, because redirect URIs are stored comma-separated.code,state,error,error_description,error_urioriss. Keys are compared decoded and case-insensitively, andforms that common server-side parsers fold into one of these, like
%69ss,code[]orerror.description, are rejected too.This is checked when a client is created or updated (Admin UI, API, dynamic client registration,
ephemeral clients, bootstrap), and for the
redirect_uriof each authorization request. Theclient_uri, post-logout redirect URIs and the SCIM base URI do not accept#or,anymoreeither.
Already stored redirect URIs are not migrated. An authorization request with such a URI is
rejected, and the client cannot be saved until the URI is replaced. At startup, Rauthy logs a
warning for each affected client and URI, and the Admin UI shows why a redirect URI is invalid. To
fix a client, replace the URI with a valid one, e.g. a path-based callback instead of a fragment.
#1757
Stricter
post_logout_redirect_uriValidationPost-logout redirect URIs follow the same rules now. A post-logout redirect URI must not contain a
fragment (
#), which would swallow thestateappended on logout, a,, or astatequeryparameter, compared the same way as above.
stateis the only parameter Rauthy appends on logout(RP-Initiated Logout 1.0 §3),
so other keys like
codeorissare still allowed here.This is checked when a client is created or updated (Admin UI, API, dynamic client registration,
ephemeral clients, bootstrap), and for the
post_logout_redirect_uriof each logout request, so awildcard registration cannot be used to inject a second
stateor a fragment anymore. Thestateon the logout redirect is now form-urlencoded and appended exactly once, like on authorization
redirects, with a space sent as
%20.Already stored post-logout redirect URIs are not migrated. A logout request with such a URI is
rejected, and the client cannot be saved until the URI is replaced. At startup, Rauthy logs a
warning for each affected client and URI, and the Admin UI shows why a URI is invalid.
#1761
Changes
Security Hardening and General Stability
The security and usability was improved in lots of places with small changes:
been used as part of a phishing campaign. This was the only "real" security issue.
blacklisting, now combines the already existing per-IP-counter with the
user.failed_login_attempts. It will use which ever values is higher. With this attempt, youwon't see a change in behavior when a single IP is doing multiple failed logins for a single user,
because their counters will always match, but Rauthy will be able to catch a distributed
brute-force for a single user more quickly. For instance, when you use a botnet trying to break in
to a user account, and each bot only checks a hand ful of passwords, the per-IP approach is not
sufficient. This new one catches each single one of them after the first try, and will blacklist
them immediately.
authorization_codeflow made sure that a user is enabled and has not expired duringthe first step, before any auth code would be sent out. The token exachange usually comes directly
afterwards, but the client also had a small window to exchange this code (configured via
client.auth_code_lifetime). If a user is disabled or expires between between these 2 steps, theauth code is being rejected now. Technically, the code itself is valid, but an additional check
makes the process more strict.
password check. The error types of both are being forwarded to the UI for best UX, so the user
knows the credentials were okay, but their account was just disabled. Technically, this could have
been abused for username enumeration, but only for disabled accounts, which are no attack target.
This message is now only shown to actually authenticated users.
redirect_uricomparison duringPOST /tokenis now an exact match against the one that wasused during
/authroize. This makes us match exactly the RFC. This is not really a security issue(at least not on Rauthys side), but an additional defense in depht for vulnerable clients that
have issues on their side. There is usually nothing Rauthy can do about it when your client is
vulnerable, but in this case it may help in a very niche situation. There will be a security
advisory about it in the upcoming weeks.
the
authorization_codeflow (which is used in almost all cases). If you however need thepasswordflow for a client for some reason (you typically don't), the same mechanism will betriggered now as well. This means you get the detection across the boundaries of different auth
flows.
Session::set_authenticated()has an additional check to prevent reviving logged-outsessions during a race condition, e.g. when the user does a concurrent login on a different
device.
password. This behavior exists to properly prevent login CSRF. However, there was a tiny time diff
between "user does not exist" and "user needs to provide a password" returns. In the real world,
you will most probably not be able to measure any timing differences, but the window is measured
now with each login, and a artificial delay is applied to the "user does not exist" fast-path to
make it impossible.
was made atomic in combination with a direct deletion. Never seen in the real world, but if you
did 2 concurrent refresh requests within a couple hundred microseconds, you might have been able
to refresh twice. To make something like this happen, you would need to trigger a refresh from the
exact same device and even process, and you would not get any elevated access, but it was still
theoretically possible.
This immediate deletion also makes the whole process more strict if anything about the request was
malformed or unexpected.
is now deleted after 3 violations.
access.token_revoke_device_tokensconfig setting is now being respected during Delete AllSessions Everywhere triggered via the Admin UI, and when doing a force-logout for a user. If set,
it will in addition to the normal ones invalidate all possibly existing Device Refresh Tokens.
Keep in mind that you usually don't want this when you have IoT devices with limited capabilities,
that are cumbersome to log in because of limited capabilities. You could still log them out
manually if necessary.
A force-logout for all user sessions did also revoke all device tokens before, which made it
impossible to remove device tokens from this endpoint with the config variable.
access.token_revoke_device_tokensalso got lost when a user does a dedicated logout via theaccount dashboard. This was a bug, and it was added back in.
device_codeauthentication. It was never seen in the real world. However, it was theoretically possible that a
stale cache update overwrote a user-approval for a device login when it exactly overlaps with a
concurrent device poll that waits for exactly that approval.
passwordauth flow enabled at the same time, the UI willnow show a warning to make it very clear that the
passwordflow cannot validate or even enforceMFA. This is nothing new and it's due to the way it works. In fact, Rauthy even MUST NOT request
any MFA here to be compliant with the OIDC RFC. This is documented, but the UI highlights this
in addition.
more constant-time comparisons were added in mutliple places. In the real world, all of these
don't make any (!) mesaurable difference, and a timing attack would not be possible. Rust already
uses SIMD and other heavy optimizations for comparisons, that even when we were doing a simple
==comparison, it was impossible to measure a difference even when running inside the exact sameprocess. However, I received a few AI reports about it, and even though not a single one of them
was able to explopit it (of course not), I changed these comparisons because of best practice, and
to not get annoyed any more.
exhaustiong attacks, because every auth start will consume memory in the form of cached data.
would only be able to trigger a self-lockout from hosts with a specifically crafted SSH key, but
it's at least a UX improvement. At the same time, more modern types of SSH keys are now allowed as
well.
logging now with better information and insight both for debugging and / or auditing.
text/plaininstead oftext/html. This removed the possibility for an Admin to theoretically store a self-XSS onRauthys own origin, and it basically a protection from a malicious admin.
panic(mostly unreachable anyway) into anErr(_), or things about normalizing error responses, and so on.#1728
Discoverable Credentials
Even though it was strongly discouraged up until now, Rauthy now supports Webauthn Discoverable
Credentials (Resident Keys). The reason it was discouraged (and still is by default) is that it had
the possibility in the past to brick some hardware devices when the available storage slots were
exceeded and not handled properly.
There are a few reasons why I decided to implement it now:
not consuming a storage slot on the device.
selected, the user will see a warning about the storage on the device, and that it's the users
responsibility to manage it. This can be ignored for all software keys, but is important for
"real" passkeys like Yubikeys.
pretty stupid, but that's how it works). Having compatibility in these cases was another reason.
If a user has a Resident Key, it can be used as a normal Passkey just like it behaves now, but it
can also be used during logins via the new "Passkey" button. When pressed, you don't even need to
provide your E-Mail anymore. All data is looked up via the Resident Keys
cred_idand theRauthy-provided
user_handle.The Passkeys list now also shows a small indicator if a Passkey is also a Resident Key. This does
NOT automatically work for already registered keys. If you want to change your current Passkey to a
Resident Key (if your device actually supports it), you need to re-register it with the Resident Key
option selected.
There are no config values. Everything is the users choice to provide as much compatibility as
possible.
#1715
FIDO Device Attestation
In addition to the new discoverable credentials, we now also have FIDO device attestation. You
usually only want to set this in environments you have under control, like business-internal, were
you can dictate the Passkeys being used. However, you can also use it on a public instance if you
really care about security. Setting any device attestion will rule out most authenticators "normal"
users use, like browser extensions, and so on. There are currently only ~340 Authenticators in
existence that actually provide certificates and can be verified. You usually only find this for
proper hardware authenticators like Yubikeys.
If you ever set this on a public instance, you should never bump up the requirements when you
already have registered users, or you need to plan some migration and give them a deadline to
upgrade. Enforcing attestation when users already have lower security ones registered, and no proper
one, will lock them out of their account otherwise.
If you, however, set the requirements directly from the beginning, the user will see proper error
messages during registration if their device does not meet the minimum security requirements.
You can now enforce different certification levels, key protection levels, and how authenticators
are attached. For instance, you can enforce that users can only use dedicated, external
authenticators that are separate from the machine they are logging-in from. USB keys count as such
of course, since they are completely separate units. Be careful with the certification levels. Most
currently existing ones are either L1 or L2, almost none L3 yet.
You have some new config options. If you set any of these, attestation will be enforced.
CAUTION: Device attestion does only work during registration! We can validate the different
levels and requirements during each authentication, and you can change them later, but only during
the registration, we can verify that the authenticator actually signed the
authDatawith thecorrect private key, that we then verify via the certificate chain from the FIDO MDS. This means if
you want to enforce this for an already running application, you MUST plan a migration phase. If you
just flick the switch, basically all users with registered keys will be locked out.
#1751
Improved Password Hashing
Rauthy is now using the latest release of
argon2. That version finally brings theparallelfeautre, which is activated now. This means that if you have multiple cores available for your
hasing (set in combination with
hashing.max_hash_threads), you will get a huge speed boost. Thep_costcan now be fully utilized, as long as you have the cores available. This on its own doesnot bump the security, but it reduces the time taken for hashing, which on the other hand means you
can bump the
m_cost(if you have the memory) or thet_costhigher. This will keep the same UXduring logins, but with increased password hash strength.
#1741
OTP
Rauthy now supports One Time Passwords (OTP) via E-Mail. Since the security of them if a lot lower
than Passkeys, this feature is opt-in and disabled by default.
If a user has both Passkeys and OTP registered, Passkeys will always be preferred. In these
situations, the user can currently not choose which factor to use. It will automatically request a
Passkey, and the OTP will be kind of a fallback, e.g. when an Admin deletes a lost Passkey. Making
it possible to choose freely might be a future addon.
#1620
#1705
Updated Validation Regexes
Validation Regexes for both user given and family name, and also for client names were updated once
again. Instead of even trying to define all possible ranges in all languages, we are now relying on
automatic resolution. All control characters, possibly dangerous and nonsense chars like emojis are
still forbidden, but apart from that, it's a lot more loose. The new definition is the following:
The regex for KV store keys was made quite a bit more strict. This was necessary since the key is
used as a path segment in API calls. This is only important when you used the KV store API manually.
The validation is now the following:
There is also a new one. A stricter version of
RE_URI, that makes sure the given URI always has ahost part. This is necessary for e.g.
redirect_uris in different places, and so on. Technically,it's a breaking change, but it should not be one if you provided proper URLs anyway.
#1708
#1728
#1743
Theme CSS uses explicit percent units
The generated theme CSS now writes saturation and lightness with an explicit
%, so a color isemitted as
--action: 34 100% 40%rather than--action: 34 100 40. Unitless values insidehsl()are a CSS Color 4 addition supported from Safari 18, Chrome 121 and Firefox 122. Browsers below that
drop the whole declaration, which left buttons with no background while
--btn-textstill applied,rendering them invisible. It affects every iOS below 18, where no alternative browser engine is
available.
If you use a custom theme, save it once after upgrading even if you change nothing. That updates the
theme's timestamp, which is what busts the long-lived client-side cache for the generated CSS.
#1706
More resilient Password Expiry E-Mails
The E-Mail reminders about an expiring password could get lost when the SMTP server was not working
properly and all retries were exceeded. Sent reminders are not remembered and saved into the DB, and
the scheduler will run more often. It will be able to pick up failed attempts and retry. This should
make these mails a lot more resilient.
In addition, you can now configure the time when users will be reminded of an expiring password:
#1721
RFC 9207 Issuer Identification
Every authorization response redirect, both the
codesuccess and theerror=login_requiredresponse for
prompt=none, now carries theissparameter. The discovery documents advertiseauthorization_response_iss_parameter_supported: true. Clients can use it to defend against mix-upattacks when they talk to multiple authorization servers.
All redirect query params are now built in one place and are properly encoded, so a
statecontaining e.g.
&iss=...cannot inject its own parameters. The login UI no longer encodesstateitself, which means it is encoded exactly once on the backend. A space is still sent as
%20.#1757
Home / Back button on Account Dashboard
You can now link to the account dashboard from your external application, and provide a
redirect_uri. If it is a valid one that is registered for a client inside Rauthys DB, you willthen see a Home / Back button in the top left corner. A user can click that to have a way back to
your external app.
#1743
resourceis carried through Auth Provider loginsRFC 8707:
resourceis now carried through upstream-provider logins. This fixes e.g. Claude's MCPconnector in combination with Upstream Auth Providers.
#1703
resourcefor Dynamic and Ephemeral ClientsYou can now allow specific resources for dynamic and ephemeral clients.
#1686
API Key Passkey Deletion
API Keys with
Users+Deletecan now callDELETE /auth/v1/users/{id}/webauthn/delete/{name}.#1713
#1713
nbfduring Token RevocationThe
nbfclaim is now ignored when you try to revoke arefresh_token. This is necessary, becauseby default they have their
nbfset toaccess_token.exp - 60. Revokking a token though is always"safe".
#1740
Color Picker in the Branding Editor
The color preview next to each HSL slider group in the Admin UI branding editor is now a native
color picker. It makes it possible to pick a color or enter it as RGB or hex, which is then
converted into the HSL values the theme uses.
#1750
Ed25519Token SignatureThe
Ed25519identifier was added for signing tokens in the client config. This is actually theexact same as
EdDSA, which is the default. The only difference is that it is more specific. Thereis a newer RFC 9864 that specifies these. This identifier can be set on clients that validate tokens
based on RFC 9864 instead of the (still current standard)
EdDSAvalue.If a client has issues fetching the JWKS, you can provide a custom query param
rfc_9864=truetothe URL which will then re-formad
EdDSAasEd25519.#1719
Sponsoring Notification
Rauthy will send a notification once a year that kindly asks for a sponsoring or a donation in a
similar way like KDE does it. It will not annoy you and never reach any normal user or group admin.
It will do this if your instance is running between 6th and 28th of december.
If you don't want to support the project, or you already do, you can disable this.
#1759
Bugfix
3600instead of
360, so the gradient ended on red instead of spanning the full spectrum.#1706
accenttwice and never validatedaction.#1706
The issue with this was that it was not possible to listen from multiple sources that share the
same IP without them evicting each other all the time.
#1728
#1682
--border-radiusfrom custom branding was not used for the login card.#1704
#1707
/registerendpoint was missing CORS headers.#1717
v0.36.2Compare Source
Security
There were 2 reachable
panics in certain situations. Especially in one case it was easy to abuseit for an unauthenticated DoS if you had a public client with enabled token refresh. A security
advisory with more information will be released in the upcoming days.
Configuration
📅 Schedule: (UTC)
* * * * *)🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.
d26a1ad60f98420837e4chore(deps): update ghcr.io/sebadob/rauthy docker tag to v0.37.0to chore(deps): update ghcr.io/sebadob/rauthy docker tag to v0.37.198420837e485341c099185341c09919c28a7152eView command line instructions
Checkout
From your project repository, check out a new branch and test the changes.