Skip to content

feat(netutils): An Alpine-based image having SSH and net utils - #183

Open
skuenzer wants to merge 1 commit into
mainfrom
skuenzer/netutils
Open

feat(netutils): An Alpine-based image having SSH and net utils#183
skuenzer wants to merge 1 commit into
mainfrom
skuenzer/netutils

Conversation

@skuenzer

@skuenzer skuenzer commented Sep 3, 2025

Copy link
Copy Markdown
Contributor

The user space of this image is built on Alpine Linux: https://wiki.alpinelinux.org/, using busybox. It comes preloaded with essential networking tools such as nslookup, ping, traceroute, ip, socat, and tcpdump. More packages can be installed with apk but an eye should be kept on free RAM 馃槃 .

@skuenzer
skuenzer force-pushed the skuenzer/netutils branch 3 times, most recently from 78cbfda to 4f609d3 Compare September 3, 2025 19:55
Signed-off-by: Simon Kuenzer <simon@unikraft.io>
@skuenzer skuenzer changed the title feat(netutils): An Alpine Linux-based image having SSH and net utils feat(netutils): An Alpine-based image having SSH and net utils Sep 3, 2025
nurof3n pushed a commit that referenced this pull request Mar 24, 2026
Update the following packages to fix security vulnerabilities:
- Authlib 1.6.5 -> 1.6.9 (critical: JWS JWK Header Injection, high: alg:none bypass, Bleichenbacher, OIDC hash binding, medium: account takeover)
- cryptography 46.0.3 -> 46.0.5 (high: SECT curve subgroup attack)
- fastmcp 2.13.2 -> 2.14.5 (high: OAuth proxy token reuse, MCP CVE-2025-66416)
- mcp 1.23.1 -> 1.26.0 (required by fastmcp 2.14.x)
- PyJWT 2.10.1 -> 2.12.1 (high: unknown crit header extensions)
- python-multipart 0.0.20 -> 0.0.22 (high: arbitrary file write)
- urllib3 2.5.0 -> 2.6.3 (high: decompression bomb bypass, streaming API issues)

Note: diskcache 5.6.3 has no fix available (alert #226).

Resolves dependabot alerts #177, #178, #183, #189, #197, #208, #224, #274, #282, #290, #292, #294, #296.

Signed-off-by: Razvan Deaconescu <razvand@unikraft.io>
dragosgheorghioiu pushed a commit that referenced this pull request Apr 7, 2026
Update the following packages to fix security vulnerabilities:
- Authlib 1.6.5 -> 1.6.9 (critical: JWS JWK Header Injection, high: alg:none bypass, Bleichenbacher, OIDC hash binding, medium: account takeover)
- cryptography 46.0.3 -> 46.0.5 (high: SECT curve subgroup attack)
- fastmcp 2.13.2 -> 2.14.5 (high: OAuth proxy token reuse, MCP CVE-2025-66416)
- mcp 1.23.1 -> 1.26.0 (required by fastmcp 2.14.x)
- PyJWT 2.10.1 -> 2.12.1 (high: unknown crit header extensions)
- python-multipart 0.0.20 -> 0.0.22 (high: arbitrary file write)
- urllib3 2.5.0 -> 2.6.3 (high: decompression bomb bypass, streaming API issues)

Note: diskcache 5.6.3 has no fix available (alert #226).

Resolves dependabot alerts #177, #178, #183, #189, #197, #208, #224, #274, #282, #290, #292, #294, #296.

Signed-off-by: Razvan Deaconescu <razvand@unikraft.io>
dragosgheorghioiu pushed a commit that referenced this pull request Apr 7, 2026
Update the following packages to fix security vulnerabilities:
- Authlib 1.6.5 -> 1.6.9 (critical: JWS JWK Header Injection, high: alg:none bypass, Bleichenbacher, OIDC hash binding, medium: account takeover)
- cryptography 46.0.3 -> 46.0.5 (high: SECT curve subgroup attack)
- fastmcp 2.13.2 -> 2.14.5 (high: OAuth proxy token reuse, MCP CVE-2025-66416)
- mcp 1.23.1 -> 1.26.0 (required by fastmcp 2.14.x)
- PyJWT 2.10.1 -> 2.12.1 (high: unknown crit header extensions)
- python-multipart 0.0.20 -> 0.0.22 (high: arbitrary file write)
- urllib3 2.5.0 -> 2.6.3 (high: decompression bomb bypass, streaming API issues)

Note: diskcache 5.6.3 has no fix available (alert #226).

Resolves dependabot alerts #177, #178, #183, #189, #197, #208, #224, #274, #282, #290, #292, #294, #296.

Signed-off-by: Razvan Deaconescu <razvand@unikraft.io>
dragosgheorghioiu pushed a commit that referenced this pull request Apr 7, 2026
Update the following packages to fix security vulnerabilities:
- Authlib 1.6.5 -> 1.6.9 (critical: JWS JWK Header Injection, high: alg:none bypass, Bleichenbacher, OIDC hash binding, medium: account takeover)
- cryptography 46.0.3 -> 46.0.5 (high: SECT curve subgroup attack)
- fastmcp 2.13.2 -> 2.14.5 (high: OAuth proxy token reuse, MCP CVE-2025-66416)
- mcp 1.23.1 -> 1.26.0 (required by fastmcp 2.14.x)
- PyJWT 2.10.1 -> 2.12.1 (high: unknown crit header extensions)
- python-multipart 0.0.20 -> 0.0.22 (high: arbitrary file write)
- urllib3 2.5.0 -> 2.6.3 (high: decompression bomb bypass, streaming API issues)

Note: diskcache 5.6.3 has no fix available (alert #226).

Resolves dependabot alerts #177, #178, #183, #189, #197, #208, #224, #274, #282, #290, #292, #294, #296.

Signed-off-by: Razvan Deaconescu <razvand@unikraft.io>
@razvand
razvand requested a lite review from Copilot August 21, 2026 07:57

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new netutils example image intended for Unikraft Cloud, providing an Alpine-based userspace with an SSH server plus common networking/debugging utilities.

Changes:

  • Introduces an Alpine-based Dockerfile that installs Dropbear SSH and essential net tools.
  • Adds a Dropbear entrypoint script (dropbeard.sh) plus MOTD/profile customizations.
  • Adds a Kraftfile and README documenting how to deploy and connect.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
netutils/README.md Deployment and SSH access instructions for the netutils example.
netutils/profile Shell prompt customization for interactive sessions.
netutils/motd MOTD banner and informational text shown on login.
netutils/Kraftfile Unikraft Cloud runtime/rootfs wiring and instance labels.
netutils/dropbeard.sh Entrypoint that optionally installs a provided public key and starts Dropbear.
netutils/Dockerfile Builds the Alpine userspace with SSH + network utilities and copies runtime assets.

馃挕 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread netutils/Dockerfile
Comment on lines +9 to +13
tcpdump \
iputils \
traceroute \
bind-tools \
socat
Comment thread netutils/Dockerfile
bind-tools \
socat

RUN echo "root:unikraft" | chpasswd
Comment thread netutils/dropbeard.sh
if test -n "${PUBKEY}"; then
mkdir -p "${HOME}/.ssh"
chmod 700 "${HOME}/.ssh"
echo "${PUBKEY}" >> "${HOME}/.ssh/authorized_keys"
Comment thread netutils/dropbeard.sh
fi

# Launch dropbear SSH server
exec /usr/sbin/dropbear -ERF
Comment thread netutils/motd
This is the netutils example image, its user space
is built on Alpine Linux: <https://wiki.alpinelinux.org/>.
For details about this image, visit:
<https://github.com/unikraft-cloud/examples/netutils>.
Comment thread netutils/README.md
# Netutils Example image

This image contains a minimal user space environment based on Alpine Linux.
A SSH server is launched and a couple of essential networking tools such as
Comment thread netutils/Dockerfile
@@ -0,0 +1,21 @@
FROM alpine:latest
Comment thread netutils/Dockerfile
RUN echo "root:unikraft" | chpasswd

COPY ./motd /etc/motd
COPY ./profile /etc/profile
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants