Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
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