diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6411485b9a89117704d667c6a5bec2107052bc3a..ab2068afa44fd13215598cc1c106ce6691b43f47 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,7 +2,7 @@ variables:
     GOSDN_IMAGE: "${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA}"
     GOSDN_TESTING_IMAGE: "${CI_REGISTRY_IMAGE}:testing_${CI_COMMIT_SHA}"
     CEOS_IMAGE: "${CI_PCONTAINERS_REGISTRY_IMAGE}/ceos:4.28.2F"
-    GOLANG_VERSION: "1.19"
+    GOLANG_VERSION: "1.20.1"
 
 workflow:
   rules:
diff --git a/.gitlab/ci/.code-quality-ci.yml b/.gitlab/ci/.code-quality-ci.yml
index 8b9b87b326f2463384fad03e62a9e860d4f2d38b..85f49c09e013908795f7e0c75d78812a055d6861 100644
--- a/.gitlab/ci/.code-quality-ci.yml
+++ b/.gitlab/ci/.code-quality-ci.yml
@@ -1,3 +1,5 @@
+variables:
+    GOLANG_VERSION: "1.20.1"
 code-quality:
     image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/golangci/golangci-lint:v1.46-alpine
     stage: analyze
@@ -13,7 +15,7 @@ code-quality:
     needs: []
 
 code-vulnerability:
-    image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/golang:1.19-bullseye
+    image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/golang:$GOLANG_VERSION-bullseye
     stage: analyze
     script:
         - go install golang.org/x/vuln/cmd/govulncheck@latest
diff --git a/.golangci.yml b/.golangci.yml
index 23055a37b56f1e351c96452672babb3a1919d20e..652493ad3cf2ce309c2ab5ffbeeb7bbedd01388a 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -1,5 +1,7 @@
+variables:
+    GOLANG_VERSION: "1.20.1"
 run:
-    go: 1.19
+    go: $GOLANG_VERSION
     concurrency: 4
     timeout: 10m
     issues-exit-code: 1
diff --git a/applications/arista-routing-engine/arista-routing-engine.Dockerfile b/applications/arista-routing-engine/arista-routing-engine.Dockerfile
index 6dfdfa4a81be29573450b608c661813210b76f64..2ebb760d2b2426cd4b4730852485836516f59a53 100644
--- a/applications/arista-routing-engine/arista-routing-engine.Dockerfile
+++ b/applications/arista-routing-engine/arista-routing-engine.Dockerfile
@@ -1,4 +1,4 @@
-ARG GOLANG_VERSION=1.18
+ARG GOLANG_VERSION=1.20.1
 ARG BUILDARGS
 ARG $GITLAB_PROXY
 
diff --git a/applications/venv-manager/venv-manager.Dockerfile b/applications/venv-manager/venv-manager.Dockerfile
index 667afe0c08771e2d22765d8b483f516112a61303..a595e29f7d500eca69b04f5eac0a85ab6da8fc0b 100644
--- a/applications/venv-manager/venv-manager.Dockerfile
+++ b/applications/venv-manager/venv-manager.Dockerfile
@@ -1,4 +1,4 @@
-ARG GOLANG_VERSION=1.19
+ARG GOLANG_VERSION=1.20.1
 ARG BUILDARGS
 ARG $GITLAB_PROXY=code.fbi.h-da.de:443/danet/dependency_proxy/containers
 
diff --git a/cli/build/ci/.test.yml b/cli/build/ci/.test.yml
index ae33d27b1e3175885edf9be1e4b088c1faccd637..594871cc8d147bb4538e89d923229a38e175b639 100644
--- a/cli/build/ci/.test.yml
+++ b/cli/build/ci/.test.yml
@@ -1,5 +1,7 @@
+variables:
+    GOLANG_VERSION: "1.20.1"
 test:
-    image: golang:1.19
+    image: golang:$GOLANG_VERSION
     stage: test
     needs:
         - job: "apply"
@@ -22,7 +24,7 @@ test:
         - go test -race ./test/integration -v -coverprofile=coverage.out
 
 .test: &test
-    image: golang:1.19
+    image: golang:$GOLANG_VERSION
     stage: test
     allow_failure: true
     variables:
diff --git a/cli/cli.Dockerfile b/cli/cli.Dockerfile
index 71e72da760ebb16804093d47ac7ab4edfae19e20..59692dceaae5dd1bd245616fe9a7fb431f08f156 100644
--- a/cli/cli.Dockerfile
+++ b/cli/cli.Dockerfile
@@ -1,4 +1,4 @@
-ARG GOLANG_VERSION=1.19
+ARG GOLANG_VERSION=1.20.1
 ARG BUILDARGS
 ARG $GITLAB_PROXY
 
diff --git a/controller/Dockerfile.debug b/controller/Dockerfile.debug
index a2460463b036732da3b6d6f17539377a8f054f40..fc6c7b73935932b3a89791c0736f3e652d8c3885 100644
--- a/controller/Dockerfile.debug
+++ b/controller/Dockerfile.debug
@@ -1,6 +1,6 @@
 # syntax = docker/dockerfile:1.2
-
-FROM golang:1.16-alpine AS builder
+ARG GOLANG_VERSION=1.20.1
+FROM golang:$GOLANG_VERSION-alpine AS builder
 ARG GITLAB_USER
 ARG GITLAB_TOKEN
 ARG BUILDARGS
diff --git a/controller/controller.Dockerfile b/controller/controller.Dockerfile
index d8dd3592f54387f3a67d20477c0016855118a386..dc6171ff7e90e9c9fb7d9f0a66b10eba1efeb34d 100644
--- a/controller/controller.Dockerfile
+++ b/controller/controller.Dockerfile
@@ -1,4 +1,4 @@
-ARG GOLANG_VERSION=1.19
+ARG GOLANG_VERSION=1.20.1
 ARG BUILDARGS
 ARG $GITLAB_PROXY
 
diff --git a/csbi/csbi.Dockerfile b/csbi/csbi.Dockerfile
index b9b3adebaa9b4afa33a6896196ff14d93f1a02fe..a20a43e0aba356bdf17e04e1d9027e229326901f 100644
--- a/csbi/csbi.Dockerfile
+++ b/csbi/csbi.Dockerfile
@@ -1,4 +1,4 @@
-ARG GOLANG_VERSION=1.19
+ARG GOLANG_VERSION=1.20.1
 ARG BUILDARGS
 ARG $GITLAB_PROXY
 
diff --git a/csbi/gnmi-target/gnmitarget.Dockerfile b/csbi/gnmi-target/gnmitarget.Dockerfile
index 4af5963a84219b2ac290354c0b2bf18997b3c5c2..3bc5056f4a35073c5a5d5e066d257a74b3394f91 100644
--- a/csbi/gnmi-target/gnmitarget.Dockerfile
+++ b/csbi/gnmi-target/gnmitarget.Dockerfile
@@ -1,4 +1,5 @@
-FROM golang:1.19-alpine
+ARG GOLANG_VERSION=1.20.1
+FROM golang:$GOLANG_VERSION-alpine
 RUN go install github.com/google/gnxi/gnmi_target@latest
 RUN wget https://raw.githubusercontent.com/google/gnxi/master/gnmi_target/openconfig-openflow.json
 EXPOSE 7030
diff --git a/csbi/resources/Dockerfile b/csbi/resources/Dockerfile
index 7ce79f87687cb4dba48cebbaf8023bb802e1e19e..f838887787a0b092b2698c7befcaac1453ea7898 100644
--- a/csbi/resources/Dockerfile
+++ b/csbi/resources/Dockerfile
@@ -1,5 +1,6 @@
 # syntax = docker/dockerfile:1.2
-FROM golang:1.19-alpine AS installer
+ARG GOLANG_VERSION=1.20.1
+FROM golang:$GOLANG_VERSION-alpine AS installer
 ARG GITLAB_USER
 ARG GITLAB_TOKEN
 WORKDIR /src/csbi
diff --git a/csbi/resources/go.mod b/csbi/resources/go.mod
index 4003eb6629b49743e70e93ff211897ce4b55c2d4..41b7e93353f6f14ff902fdb2d3dfcb6036be188d 100644
--- a/csbi/resources/go.mod
+++ b/csbi/resources/go.mod
@@ -1,6 +1,6 @@
 module code.fbi.h-da.de/danet/gosdn/csbi-autogen
 
-go 1.19
+go 1.20
 
 require (
 	code.fbi.h-da.de/danet/gosdn v0.0.3-0.20220805102430-8465989fb8b3
diff --git a/go.mod b/go.mod
index 743d59d48312d9941927367abfbb4e0a4525d717..21ac897484195f5ee14e918bfe2ea066fab192da 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
 module code.fbi.h-da.de/danet/gosdn
 
-go 1.19
+go 1.20
 
 require (
 	github.com/aristanetworks/goarista v0.0.0-20220425175323-05f7c4c5e34c
@@ -89,10 +89,10 @@ require (
 	github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect
 	go.opencensus.io v0.23.0 // indirect
 	golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa
-	golang.org/x/net v0.0.0-20220728030405-41545e8bf201
-	golang.org/x/sys v0.0.0-20221006211917-84dc82d7e875 // indirect
-	golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
-	golang.org/x/text v0.3.7 // indirect
+	golang.org/x/net v0.7.0
+	golang.org/x/sys v0.5.0 // indirect
+	golang.org/x/term v0.5.0 // indirect
+	golang.org/x/text v0.7.0 // indirect
 	gopkg.in/ini.v1 v1.66.6 // indirect
 	gopkg.in/yaml.v2 v2.4.0 // indirect
 )
diff --git a/go.sum b/go.sum
index fdc042d836ce091173ab5cc19f4f38010808ceeb..705a77a73846aa1fd79d52d02b4d4fc503cc9f44 100644
--- a/go.sum
+++ b/go.sum
@@ -1147,6 +1147,8 @@ golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su
 golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
 golang.org/x/net v0.0.0-20220728030405-41545e8bf201 h1:bvOltf3SADAfG05iRml8lAB3qjoEX5RCyN4K6G5v3N0=
 golang.org/x/net v0.0.0-20220728030405-41545e8bf201/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
+golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
+golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1284,12 +1286,16 @@ golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBc
 golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20221006211917-84dc82d7e875 h1:AzgQNqF+FKwyQ5LbVrVqOcuuFB67N47F9+htZYH0wFM=
 golang.org/x/sys v0.0.0-20221006211917-84dc82d7e875/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
+golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY=
+golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1300,6 +1306,8 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
+golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
 golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=