Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion images/chromium-headful/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ RUN set -eux; \
make -j$(nproc); \
make install;

FROM ghcr.io/m1k1o/neko/chromium:3.0.6 AS neko
#FROM ghcr.io/m1k1o/neko/chromium:3.0.6 AS neko
FROM ghcr.io/raiden-staging/neko/chromium:3.0.6-kernel-editv1 AS neko
Copy link

Choose a reason for hiding this comment

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

Consider adding a version pin or digest hash to ensure reproducible builds and avoid potential supply chain risks. For example: FROM ghcr.io/raiden-staging/neko/chromium:3.0.6-kernel-editv1@sha256:... or at minimum document the source commit/tag this image was built from for audit purposes.

Type: Security | Severity: Medium

# ^--------- edited + rebuilt neko:chromium to disable host only on clipboard events
Copy link
Contributor

Choose a reason for hiding this comment

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

Hey @raiden-staging I've forked neko over here: https://github.com/onkernel/neko

Could you open a PR on that repo with this change?

FROM docker.io/ubuntu:22.04

ENV DEBIAN_FRONTEND=noninteractive
Expand Down
2 changes: 1 addition & 1 deletion images/chromium-headful/client/src/components/connect.vue
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@
}

// KERNEL: auto-login
this.$accessor.login({ displayname: 'dummy', password: 'dummy' })
this.$accessor.login({ displayname: 'kernel', password: 'admin' })
this.autoPassword = null
}

Expand Down
27 changes: 26 additions & 1 deletion images/chromium-headful/neko.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,32 @@ desktop:
screen: "1024x768@60"

member:
provider: "noauth"
provider: multiuser
multiuser:
admin_password: "admin"
Copy link

Choose a reason for hiding this comment

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

Using "admin" as the admin password is a security risk, even in development environments. Consider using a stronger password or making this configurable via environment variables.

Type: Security | Severity: Medium

admin_profile:
name: "" # if empty, the login username is used
is_admin: true
can_login: true
can_connect: true
can_watch: true
can_host: true
can_share_media: true
can_access_clipboard: true
sends_inactive_cursor: true
can_see_inactive_cursors: true
user_password: "neko"
Copy link

Choose a reason for hiding this comment

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

Bug: Default Passwords Expose Admin Access

Weak default passwords are hardcoded for admin ("admin") and user ("neko") accounts in the neko.yaml configuration under the multiuser provider. This creates a security vulnerability, allowing unauthorized administrative access, including full clipboard and hosting privileges, if not changed upon deployment.

Locations (1)
Fix in Cursor Fix in Web

user_profile:
name: "" # if empty, the login username is used
is_admin: false
can_login: true
can_connect: true
can_watch: true
can_host: true
Copy link

Choose a reason for hiding this comment

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

Both admin and user profiles have can_host: true. While this may be intentional for clipboard functionality, consider if regular users really need host permissions, as this could allow them to take control of the session from admins.

Type: Security | Severity: Medium

can_share_media: true
can_access_clipboard: true
sends_inactive_cursor: true
can_see_inactive_cursors: false

session:
merciful_reconnect: true
Expand Down
Loading