diff --git a/go.mod b/go.mod
index 8703c5315892234349eab3c7beb07fb4947503ca..55b5fb3d406258cd2eb1b540cf2727a1422abd81 100644
--- a/go.mod
+++ b/go.mod
@@ -1,8 +1,8 @@
 module git.autistici.org/smol/idp
 
-go 1.23
+go 1.23.0
 
-toolchain go1.23.2
+toolchain go1.24.2
 
 require (
 	git.autistici.org/smol/ratelimit v0.0.0-20240703095711-adc8760b6bd2
@@ -33,7 +33,7 @@ require (
 	go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0
 	go.opentelemetry.io/otel v1.32.0
 	go.opentelemetry.io/otel/trace v1.32.0
-	golang.org/x/sync v0.9.0
+	golang.org/x/sync v0.13.0
 	golang.org/x/text v0.20.0
 	google.golang.org/grpc v1.68.0
 	google.golang.org/protobuf v1.35.2
diff --git a/go.sum b/go.sum
index 7f1dab8e82e42c00452a846b0f82f19e1a54d3f7..28303974627ab3a332c8f991515dfc320bfd7c56 100644
--- a/go.sum
+++ b/go.sum
@@ -222,6 +222,8 @@ golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
 golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ=
 golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610=
+golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=