From 05b0fe8df9e7157a90da9fa4246462b110a01287 Mon Sep 17 00:00:00 2001 From: boburning Date: Mon, 31 Aug 2026 02:36:31 -0400 Subject: [PATCH 1/2] security(network): retire inherited FTP payload (NET-10) --- build/dependencies.lock | 8 +- build/legacy-manifest.json | 30 +------ docs/1.0_TEST_MATRIX.md | 2 +- docs/SECURITY.md | 4 + src/tweaks/appstate.h | 2 - src/tweaks/network.h | 76 +---------------- src/tweaks/tweaks.c | 1 - static/build/.tmp_update/bin/bftpd | Bin 268920 -> 0 bytes static/build/.tmp_update/bin/bftpdutmp | Bin 62100 -> 0 bytes .../script/network/update_networking.sh | 45 ---------- static/configs/.tmp_update/config/bftpd.conf | 79 ------------------ .../configs/.tmp_update/config/bftpdauth.conf | 65 -------------- test/shell/branding_copy.bats | 4 +- test/shell/ci_validation.bats | 16 ++++ test/shell/legacy_manifest.bats | 4 +- test/shell/listener_lockdown.bats | 25 ++++++ test/test_retroarch_build_identity.py | 6 +- tools/ci-scope.sh | 14 ++++ website/docs/01-features/index.md | 2 +- .../07-apps/01-included-in-onion/tweaks.mdx | 8 -- .../01-samba-file-sharing.md | 4 +- .../07-apps/03-network-features/04-ftp.md | 74 +++------------- .../07-apps/03-network-features/06-hotspot.md | 2 +- 23 files changed, 90 insertions(+), 381 deletions(-) delete mode 100644 static/build/.tmp_update/bin/bftpd delete mode 100644 static/build/.tmp_update/bin/bftpdutmp delete mode 100644 static/configs/.tmp_update/config/bftpd.conf delete mode 100644 static/configs/.tmp_update/config/bftpdauth.conf diff --git a/build/dependencies.lock b/build/dependencies.lock index 8962c6196..f30737e88 100644 --- a/build/dependencies.lock +++ b/build/dependencies.lock @@ -207,11 +207,11 @@ legacy_channels = ["development"] [legacy_inventory] manifest = "build/legacy-manifest.json" schema = 1 -component_count = 333 -file_count = 1974 -byte_count = 261292177 +component_count = 331 +file_count = 1972 +byte_count = 260959742 source_build_components = 232 -unresolved_components = 101 +unresolved_components = 99 inherited_baseline = "07505ea58c7bba698d6b9220ff43946a43cac76b" [themes] diff --git a/build/legacy-manifest.json b/build/legacy-manifest.json index 536baaf32..30f2c6aef 100644 --- a/build/legacy-manifest.json +++ b/build/legacy-manifest.json @@ -431,32 +431,6 @@ "build_recipe": null, "resolution": "replace-source-build-or-exclude" }, - { - "id": "runtime-tmp-update-bin-bftpd", - "kind": "runtime", - "path": "static/build/.tmp_update/bin/bftpd", - "file_count": 1, - "byte_count": 268895, - "tree_sha256": "2ac00ecd46d5af4fafd125dce4fb753c804fe63d400b0946dbee32b64950c566", - "source": null, - "source_revision": null, - "license": null, - "build_recipe": null, - "resolution": "replace-source-build-or-exclude" - }, - { - "id": "runtime-tmp-update-bin-bftpdutmp", - "kind": "runtime", - "path": "static/build/.tmp_update/bin/bftpdutmp", - "file_count": 1, - "byte_count": 62100, - "tree_sha256": "7ac25e26813dbf435940025f1432d2ebcf04856ad5f1ac5d81a5de0370a8060d", - "source": null, - "source_revision": null, - "license": null, - "build_recipe": null, - "resolution": "replace-source-build-or-exclude" - }, { "id": "runtime-tmp-update-bin-bloom-controls", "kind": "runtime", @@ -2347,8 +2321,8 @@ "kind": "runtime", "path": "static/build/.tmp_update/script/network", "file_count": 5, - "byte_count": 25000, - "tree_sha256": "0a925e68531db9099042ecf3ffbb3af5249cc5ae3ed2001c1468ca4eb9b99e0e", + "byte_count": 23560, + "tree_sha256": "c0c20b192a1f736c4e8d6ff20dd0ffbf8133d20e98e12229dd1cacae022fd593", "source": "https://github.com/OnionUI/Onion", "source_revision": "07505ea58c7bba698d6b9220ff43946a43cac76b", "license": "GPL-3.0-only", diff --git a/docs/1.0_TEST_MATRIX.md b/docs/1.0_TEST_MATRIX.md index 87eae64c7..d1de1482c 100644 --- a/docs/1.0_TEST_MATRIX.md +++ b/docs/1.0_TEST_MATRIX.md @@ -52,7 +52,7 @@ shoulder button. | Critical lifecycle | Exact 640x480 and 752x560 built-in projections; source/target/path and legacy-file rejection; boot/shutdown/save/low-battery/recovery/Safe Mode ignore theme/config/media; charging reflects bounded actual level; installer uses one deterministic surface; missing optional text/font fallback; signed Full-update boot/charging/shutdown/recovery checkpoint | | Settings | One sectioned surface; inline values; capability filtering; one-layer details; hidden Developer section; optional overlapping L1/R1 list paging | | Quick Settings | START from core surfaces; immediate brightness/volume/mute; capability-gated Wi-Fi opens the dedicated detail surface; Wi-Fi left/right never mutates the radio; readable battery; B/START close | -| Network services | Desired/runtime separation; carrier without IPv4 remains acquiring/not-ready; canonical DHCP restart and bounded post-address listener reconciliation; SSH shell and SFTP independent key-only states; canonical transfer roots and modes; Saves read-only; private roots denied; traversal/symlink/path bounds; same-filesystem atomic publication; authorized-key import; quiesce/health; stale FTP/Telnet/FileBrowser/inherited-Samba/WPS/hotspot flags cannot activate listeners; process-aware listener audit; dormant Telnet and FileBrowser HTTP launcher/Tweaks exposure plus rejected Samba payloads absent from newly assembled stable artifacts while older-card remnants remain locked down | +| Network services | Desired/runtime separation; carrier without IPv4 remains acquiring/not-ready; canonical DHCP restart and bounded post-address listener reconciliation; SSH shell and SFTP independent key-only states; canonical transfer roots and modes; Saves read-only; private roots denied; traversal/symlink/path bounds; same-filesystem atomic publication; authorized-key import; quiesce/health; stale FTP/Telnet/FileBrowser/inherited-Samba/WPS/hotspot flags cannot activate listeners; process-aware listener audit; inherited FTP/Telnet/FileBrowser HTTP launcher and Tweaks exposure plus rejected Samba payloads absent from newly assembled stable artifacts while older-card remnants remain locked down | | Wi-Fi profile store | JFFS2 private root; stdin-only bounded replacement and `bloomctl network profile upsert ID`; requested/document ID binding; explicit `network forget ID`; inactive-ID deletion with active-profile refusal; active forget only after a separately confirmed fallback connection; schema/unknown-field/count/size enforcement; WPA2-PSK, explicit open, and manual hidden WPA2; WEP and hidden open denial; unique IDs/SSIDs; redacted status; explicit local credential-free UI list with one active marker; sanitized `network connect status` with internal profile-handle validation and public omission; mode-0600 atomic single-profile supplicant projection; symlink, occupied-slot, live-lock, invalid-profile, and prior-byte preservation | | Wi-Fi scan API | Asynchronous start; redacted status; explicit ID-scoped local results; cancel and terminal discard; one active worker; five-second rate limit; 15-second runtime; 64-KiB raw ceiling; 32 unique printable SSIDs; eight-operation history; open/WPA2-PSK/unsupported classification; duplicate signal reconciliation; backend failure, timeout, oversize, unsafe-path, stale/live-lock, and unsupported-hardware handling | | Wi-Fi UI | Original Mini hidden; Settings, Shell Quick Settings, and GameSwitcher Quick Settings converge on `--settings-wifi`; direct radio toggle removed; bounded fixed-argv profile-list load outside render; connection state and saved-network detail; selectable Scan/Cancel row and read-only discovered networks; active-only 100-ms SDL wake; deferred GameSwitcher until cancellation discard; single-flight nonblocking fixed-argv scan client; 16-KiB output and five-second deadline; child process-group cleanup; controller-owned start/status/results/discard and cancel-during-start sequencing; 250-ms status opportunities; exact profile/scan/ack schemas; 16 profiles and 32 networks; unique bounded IDs/SSIDs; one active profile; fixed scan phases/errors; terminal history discarded; open/WPA2 profile form with shared keyboard, masked secret, fixed profile-upsert argv, escaped stdin JSON, strict ID/SSID/PSK validation, explicit secret clearing, nonblocking submit/poll, 4-KiB acknowledgement cap, exact upsert response, timeout process-group cleanup, exact saved-ID reuse, 104-bit no-follow random new handles, collision/security/full-store rejection, one editing/submitting controller with 100-ms poll opportunities, exact cancellation, terminal clearing, bounded focus return, supported scan-result selection, explicit saved-not-connected result, and no implicit association; explicit inactive-profile X/confirm forget flow; active-row refusal in Shell and store; fixed nonblocking delete; exact acknowledgement; terminal projection reload; graceful TERM cleanup before bounded KILL; exact guarded-connect status model with fixed phases/operations/failures, lease consistency, 64-byte transaction-ID and 300-second deadline ceilings, and discarded transaction/overlay identity; fixed no-follow `network connect status` loader with less-than-4-KiB output, five-second read ceiling, and stale-state clearing; separately typed single-flight nonblocking status request with process-group timeout and generic-poller refusal; controller-owned single request, 100-ms opportunities, duplicate-begin refusal, typed terminal state, teardown reaping, explicit guarded-state presentation, one-second freshness, fail-closed mutation gating for stale/unavailable/lease-armed/rollback-failed results, read-only refresh without queued intent, and exit teardown; credential and unknown-field rejection; passwords absent from arguments, logs, screenshots, durable Shell state, and evidence | diff --git a/docs/SECURITY.md b/docs/SECURITY.md index 49224a1bc..a2ee33269 100644 --- a/docs/SECURITY.md +++ b/docs/SECURITY.md @@ -26,6 +26,10 @@ are no longer exposed by the stable UI. The inherited Telnet environment launcher, dormant start logic, and visible Tweaks toggle are also excluded; stale-state cleanup and exact BusyBox `telnetd` termination remain for older-card compatibility. +The inherited bftpd executables, anonymous/authenticated configurations, start +logic, default credentials, and visible Tweaks controls are excluded as well; +stale FTP state cleanup and exact `bftpd` termination remain for older-card +compatibility. The reviewed key-only Dropbear transport is the only stable remote listener; SFTP is independently gated and confined through that same transport. Its chroot is materialized from the versioned canonical transfer policy rather diff --git a/src/tweaks/appstate.h b/src/tweaks/appstate.h index 7d2f361c8..34ff8550c 100644 --- a/src/tweaks/appstate.h +++ b/src/tweaks/appstate.h @@ -17,7 +17,6 @@ bool isMenu(List *target) static List _menu_network; static List _menu_wifi; -static List _menu_ftp; static List _menu_wps; static List _menu_smbd; static List _menu_vnc; @@ -26,7 +25,6 @@ void menu_network_free_all(void) { list_free(&_menu_network); list_free(&_menu_wifi); - list_free(&_menu_ftp); list_free(&_menu_wps); list_free(&_menu_smbd); list_free(&_menu_vnc); diff --git a/src/tweaks/network.h b/src/tweaks/network.h index 2c311baff..75ddc6e1e 100644 --- a/src/tweaks/network.h +++ b/src/tweaks/network.h @@ -28,12 +28,10 @@ static struct network_s { bool smbd; - bool ftp; bool hotspot; bool ntp; bool ntp_wait; bool auth_smbd; - bool auth_ftp; bool manual_tz; bool check_updates; bool keep_alive; @@ -51,12 +49,10 @@ void network_loadState(void) return; network_state.smbd = config_flag_get(".smbdState"); - network_state.ftp = config_flag_get(".ftpState"); network_state.hotspot = config_flag_get(".hotspotState"); network_state.ntp = config_flag_get(".ntpState"); network_state.ntp_wait = config_flag_get(".ntpWait"); network_state.force_wifi_on_startup = config_flag_get(".ntpForce"); - network_state.auth_ftp = config_flag_get(".authftpState"); network_state.manual_tz = config_flag_get(".manual_tz"); network_state.check_updates = config_flag_get(".checkUpdates"); network_state.keep_alive = config_flag_get(".keepServicesAlive"); @@ -212,21 +208,6 @@ void network_execServiceState(const char *service_name, bool background) printf_debug("network_execServiceState: %s\n", state); } -void network_execServiceAuth(const char *service_name) -{ - char authed[256]; - char command[512]; - - sync(); - - sprintf(authed, NET_SCRIPT_PATH "/update_networking.sh %s authed", service_name); - sprintf(command, "%s 2>&1", authed); - - system(command); - - printf_debug("network_execServiceAuth: %s\n", authed); -} - void network_commonEnableToggle(List *list, ListItem *item, bool *value_pt, const char *service_name, const char *service_flag) { bool enabled = item->value == 1; @@ -244,11 +225,6 @@ void network_setSmbdState(void *pt) network_commonEnableToggle(&_menu_smbd, (ListItem *)pt, &network_state.smbd, "smbd", ".smbdState"); } -void network_setFtpState(void *pt) -{ - network_commonEnableToggle(&_menu_ftp, (ListItem *)pt, &network_state.ftp, "ftp", ".ftpState"); -} - void network_setHotspotState(void *pt) { network_setState(&network_state.hotspot, ".hotspotState", ((ListItem *)pt)->value); @@ -286,12 +262,6 @@ void network_keepServicesAlive(void *pt) network_setState(&network_state.keep_alive, ".keepServicesAlive", !((ListItem *)pt)->value); } -void network_setFtpAuthState(void *pt) -{ - network_setState(&network_state.auth_ftp, ".authftpState", ((ListItem *)pt)->value); - network_execServiceAuth("ftp"); -} - void network_wpsConnect(void *pt) { system("sh " NET_SCRIPT_PATH "/wpsclient.sh"); @@ -416,37 +386,6 @@ void menu_smbd(void *pt) header_changed = true; } -void menu_ftp(void *pt) -{ - ListItem *item = (ListItem *)pt; - item->value = (int)network_state.ftp; - if (!_menu_ftp._created) { - _menu_ftp = list_create(2, LIST_SMALL); - strcpy(_menu_ftp.title, "FTP"); - list_addItemWithInfoNote(&_menu_ftp, - (ListItem){ - .label = "Enable", - .item_type = TOGGLE, - .value = (int)network_state.ftp, - .action = network_setFtpState}, - item->info_note); - list_addItemWithInfoNote(&_menu_ftp, - (ListItem){ - .label = "Enable authentication", - .item_type = TOGGLE, - .disabled = !network_state.ftp, - .value = (int)network_state.auth_ftp, - .action = network_setFtpAuthState}, - "Username: onion\n" - "Password: onion\n" - " \n" - "We're using a new auth system. User defined\n" - "passwords will come in a future update."); - } - menu_stack[++menu_level] = &_menu_ftp; - header_changed = true; -} - void menu_wps(void *_) { if (!_menu_wps._created) { @@ -533,7 +472,7 @@ void menu_wifi(void *_) void menu_network(void *_) { if (!_menu_network._created) { - _menu_network = list_create(8, LIST_SMALL); + _menu_network = list_create(7, LIST_SMALL); strcpy(_menu_network.title, "Network"); network_loadState(); @@ -562,19 +501,6 @@ void menu_network(void *_) " \n" "Username: onion\n" "Password: onion\n"); - list_addItemWithInfoNote(&_menu_network, - (ListItem){ - .label = "FTP: File server...", - .item_type = TOGGLE, - .disabled = !settings.wifi_on, - .alternative_arrow_action = true, - .arrow_action = network_setFtpState, - .value = (int)network_state.ftp, - .action = menu_ftp}, - "FTP provides a method of transferring files\n" - "between BloomOS and a PC, phone, or tablet.\n" - "You'll need an FTP client installed on the\n" - "other device."); list_addItemWithInfoNote(&_menu_network, (ListItem){ .label = "VNC: Screen share...", diff --git a/src/tweaks/tweaks.c b/src/tweaks/tweaks.c index 21c4dbd7b..4f6f91726 100644 --- a/src/tweaks/tweaks.c +++ b/src/tweaks/tweaks.c @@ -46,7 +46,6 @@ void check_networkChanged(void) { bool modified = temp_flag_get("network_changed"); modified |= check_menuHasChanges(&_menu_network); - modified |= check_menuHasChanges(&_menu_ftp); modified |= check_menuHasChanges(&_menu_date_time); temp_flag_set("network_changed", modified); } diff --git a/static/build/.tmp_update/bin/bftpd b/static/build/.tmp_update/bin/bftpd deleted file mode 100644 index adc08c1ddb255f27586a7a9e6f516ec2eede9c0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268920 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
    {u9d&NXSxLJHb|8X1@b?_L-^p45{Y}v4 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 z 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 z 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 diff --git a/static/build/.tmp_update/bin/bftpdutmp b/static/build/.tmp_update/bin/bftpdutmp deleted file mode 100644 index 98048634572bbab3d483d16c73e1cbc4ea6e0f6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62100 zcmeI*ZA_JA7zgl&H-Ug&oH=kg&D0H<$jKn=#g}p`)=EJolU_vVh=vBk87i3#4JmYq zOvyIOKzxDL7r^{CY`S{YlF_^@X{SV1LHgS(u_RajW4E&N&ZH$QlvA6KiUN6d5Os#ZSVORff3 zgRl_le-NwbJa>jx?P}FUD`?fHRuN9D?XEh{kXJ4>m`E#_t9-S3&%^vW=&HH8QYpDA zqZQ26b+z(*n7Kk&ndc=}w>i&%sI2V`Vs(c#2(3EQis#Od%DQ_&a^=bII1uZLCb7!l zdIhas{#C4UX$7rzG>g?Qw1QSyYUNHVXm#Uv$(286wxLyEt5|ijzk*gCm&IxZYYsAtB#z#@l;Ff%pR3L@%nA^zPWD$YSKXScCs>2f$|F{C)y_Q`XthtR z251GXa@A@-=S87az?)Ko$GL|Lt=?6uY~Du?t!}QAT;^$L1=YLttPW?hgN~{lB>h4L1;CcAXXhb$AMNs zYBk7xQD}8St!!McpjEqFYVZp8ub@@``(kyPXI{`MZLL`K@R^y=s#mQJuxEf)_9V&G zPR_|dtC;m-70mStTBWL0CinWFRm*1k=&V{5a|NvyeF={oRR?uph zT7~n>3tE+bCN)^h_bx%J%~@jA#Ip%#wfm4*4bci(?NO^c?608JqQjD_^UM{rN>!`> z94{{BJJ!eMDp9Lmo)3-<<@nU^8>zv5S{YmA^Nb!^P1aobaSs_<)u`1pT0yHiwMypv z6|@TZR@U}luI&`HTvA=h?j6{S`)xwb>Av!#-&K3YMm z^fIwJ!tc(|YC^eK9itVrdR(o_I0Ff-wy9MEpFsz$CRIxfMmf=6x$65;-F_A;yAx-r zu4=Vdt-hlbtid?7Dxj6IRUxg6t&Y+PTD`3`SVSvhtLL29zjD> zTeWA1;Oqyq3Y#PS)fCnswDJrSt6o|`tAmbbusX&*tRt*JXq6r=xtdQaXyxme6CKIb zB3c<+EufXL)k0bsTYXI{XceOC)g@X%E1O!KxSuRjW<3GPe4JR>oEtv@*8(lvc)8 S+i7KNwS!j1Rv**K$m)Lskj0Jw diff --git a/static/build/.tmp_update/script/network/update_networking.sh b/static/build/.tmp_update/script/network/update_networking.sh index 64705e4a4..97eaccda8 100644 --- a/static/build/.tmp_update/script/network/update_networking.sh +++ b/static/build/.tmp_update/script/network/update_networking.sh @@ -243,51 +243,6 @@ smbd_authed() { fi } -# Starts bftpd if the toggle is set to on -check_ftpstate() { - if flag_enabled ftpState; then - if is_running bftpd; then - if wifi_disabled; then - log "FTP: Wifi is turned off, disabling the toggle for FTP and killing the process" - disable_flag ftpState - killall -9 bftpd - fi - else - if wifi_enabled; then - log "FTP: Starting bftpd" - sync - if flag_enabled authftpState; then - ftp_authed - else - bftpd -d -c /mnt/SDCARD/.tmp_update/config/bftpd.conf - log "FTP: Starting bftpd without auth" - fi - else - disable_flag ftpState - fi - fi - else - if is_running bftpd; then - killall -9 bftpd - log "FTP: Killed" - fi - fi -} - -# Called by above function on boot or when auth state is toggled in tweaks -ftp_authed() { - if flag_enabled ftpState; then - if is_running_exact "bftpd -d -c /mnt/SDCARD/.tmp_update/config/bftpd.conf" || flag_enabled authftpState; then - killall -9 bftpd - bftpd -d -c /mnt/SDCARD/.tmp_update/config/bftpdauth.conf - log "FTP: Starting bftpd with auth" - else - killall -9 bftpd - bftpd -d -c /mnt/SDCARD/.tmp_update/config/bftpd.conf - fi - fi -} - # Starts only Bloom's explicit developer-mode, key-only SSH service. check_sshstate() { if $sysdir/bin/bloom-dev-ssh start; then diff --git a/static/configs/.tmp_update/config/bftpd.conf b/static/configs/.tmp_update/config/bftpd.conf deleted file mode 100644 index 3900d7a42..000000000 --- a/static/configs/.tmp_update/config/bftpd.conf +++ /dev/null @@ -1,79 +0,0 @@ - global { - DENY_LOGIN="no" - PORT="21" - PASSIVE_PORTS="0" - DATAPORT20="no" - ADMIN_PASS="x" - PATH_BFTPDUTMP="/mnt/SDCARD/.tmp_update/bin/bftpdutmp" - XFER_BUFSIZE="64000" - CHANGE_BUFSIZE="yes" - XFER_DELAY="0" - SHOW_HIDDEN_FILES="always" - SHOW_NONREADABLE_FILES="yes" - ALLOW_FXP="no" - CONTROL_TIMEOUT="300" - DATA_TIMEOUT="30" - RATIO="none" - ROOTDIR="/mnt/SDCARD" - UMASK="022" - LOGFILE="/mnt/SDCARD/.tmp_update/logs/ftp.log" - HELLO_STRING="Onion ftp at %i ready." - AUTO_CHDIR="/mnt/SDCARD" - AUTH="PASSWD" - RESOLVE_CLIENT_IP="no" - MOTD_GLOBAL="/mnt/SDCARD/.tmp_update/config/ftpmotd" - MOTD_USER="/mnt/SDCARD/.tmp_update/config/.ftpmotd" - RESOLVE_UIDS="yes" - DO_CHROOT="no" - LOG_WTMP="no" - BIND_TO_ADDR="any" - AUTH_ETCSHELLS="no" - ALLOWCOMMAND_DELE="yes" - ALLOWCOMMAND_STOR="yes" - ALLOWCOMMAND_SITE="yes" - HIDE_GROUP="" - QUIT_MSG="See you later, have a good game !" - USERLIMIT_GLOBAL="0" - USERLIMIT_SINGLEUSER="0" - USERLIMIT_HOST="0" - GZ_UPLOAD="yes" - GZ_DOWNLOAD="yes" - } - - -user anonymous { - -#If the client wants anonymous, ftp is taken instead. -ALIAS="ftp" -} - - -user ftp { -#Any password fits. -ANONYMOUS_USER="yes" -ALLOWCOMMAND_NLST="yes" -ALLOWCOMMAND_LIST="yes" -ALLOWCOMMAND_DELE="yes" -ALLOWCOMMAND_STOR="yes" -ALLOWCOMMAND_MKD="yes" -ALLOWCOMMAND_RMD="yes" -ALLOWCOMMAND_XMKD="yes" -ALLOWCOMMAND_XRMD="yes" -SHOW_HIDDEN_FILES="no" -INITIAL_CHROOT="/mnt/SDCARD/" -DO_CHROOT="yes" -} - - -user root { -DENY_LOGIN="no" -ALLOWCOMMAND_NLST="yes" -ALLOWCOMMAND_LIST="yes" -ALLOWCOMMAND_DELE="yes" -ALLOWCOMMAND_STOR="yes" -ALLOWCOMMAND_MKD="yes" -ALLOWCOMMAND_RMD="yes" -ALLOWCOMMAND_XMKD="yes" -ALLOWCOMMAND_XRMD="yes" -} - diff --git a/static/configs/.tmp_update/config/bftpdauth.conf b/static/configs/.tmp_update/config/bftpdauth.conf deleted file mode 100644 index 6d0f4f0a8..000000000 --- a/static/configs/.tmp_update/config/bftpdauth.conf +++ /dev/null @@ -1,65 +0,0 @@ - global { - DENY_LOGIN="no" - PORT="21" - PASSIVE_PORTS="0" - DATAPORT20="no" - ADMIN_PASS="x" - PATH_BFTPDUTMP="/mnt/SDCARD/.tmp_update/bin/bftpdutmp" - XFER_BUFSIZE="64000" - CHANGE_BUFSIZE="yes" - XFER_DELAY="0" - SHOW_HIDDEN_FILES="always" - SHOW_NONREADABLE_FILES="yes" - ALLOW_FXP="no" - CONTROL_TIMEOUT="300" - DATA_TIMEOUT="30" - RATIO="none" - ROOTDIR="/mnt/SDCARD" - UMASK="022" - LOGFILE="/mnt/SDCARD/.tmp_update/logs/ftp.log" - HELLO_STRING="Onion ftp at %i ready." - AUTO_CHDIR="/mnt/SDCARD" - AUTH="PASSWD" - RESOLVE_CLIENT_IP="no" - MOTD_GLOBAL="/mnt/SDCARD/.tmp_update/config/ftpmotd" - MOTD_USER="/mnt/SDCARD/.tmp_update/config/.ftpmotd" - RESOLVE_UIDS="yes" - DO_CHROOT="no" - LOG_WTMP="no" - BIND_TO_ADDR="any" - AUTH_ETCSHELLS="no" - ALLOWCOMMAND_DELE="yes" - ALLOWCOMMAND_STOR="yes" - ALLOWCOMMAND_SITE="yes" - HIDE_GROUP="" - QUIT_MSG="See you later, have a good game!" - USERLIMIT_GLOBAL="0" - USERLIMIT_SINGLEUSER="0" - USERLIMIT_HOST="0" - GZ_UPLOAD="yes" - GZ_DOWNLOAD="yes" - } - - -user anonymous { -# If the client wants anonymous, ftp is taken instead. -ALIAS="onion" -} - -user onion { -DENY_LOGIN="no" -ALLOWCOMMAND_NLST="yes" -ALLOWCOMMAND_LIST="yes" -ALLOWCOMMAND_DELE="yes" -ALLOWCOMMAND_STOR="yes" -ALLOWCOMMAND_MKD="yes" -ALLOWCOMMAND_RMD="yes" -ALLOWCOMMAND_XMKD="yes" -ALLOWCOMMAND_XRMD="yes" -INITIAL_CHROOT="/" -DO_CHROOT="yes" -} - -user root { -DENY_LOGIN="yes" -} \ No newline at end of file diff --git a/test/shell/branding_copy.bats b/test/shell/branding_copy.bats index 706275610..c0c5fda93 100644 --- a/test/shell/branding_copy.bats +++ b/test/shell/branding_copy.bats @@ -4,9 +4,9 @@ run python3 /workspace/tools/validate_branding_copy.py --repository /workspace [ "$status" -eq 0 ] - [[ "$output" == "branding copy validate: 10 classified legacy literals" ]] + [[ "$output" == "branding copy validate: 8 classified legacy literals" ]] ! grep -F 'website hosted by' /workspace/src/tweaks/network.h - grep -F 'between BloomOS and a PC' /workspace/src/tweaks/network.h + ! grep -F 'FTP provides' /workspace/src/tweaks/network.h grep -F 'Reset all BloomOS system settings' /workspace/src/tweaks/menus.h grep -F 'BloomOS save folder map' /workspace/static/configs/Saves/CurrentProfile/saves/README.txt grep -F 'label = BloomOS-v{VERSION}' /workspace/static/build/autorun.inf diff --git a/test/shell/ci_validation.bats b/test/shell/ci_validation.bats index 15df9c128..83f61282a 100644 --- a/test/shell/ci_validation.bats +++ b/test/shell/ci_validation.bats @@ -127,3 +127,19 @@ [ "$status" -eq 0 ] [ "$output" = "full" ] } + +@test "stable FTP payload removal keeps packaging exhaustive and cppcheck scoped" { + scope=/workspace/tools/ci-scope.sh + run sh -c "printf '%s\n' static/build/.tmp_update/bin/bftpd | '$scope' build" + [ "$status" -eq 0 ] + [ "$output" = "full" ] + run sh -c "printf '%s\n' static/configs/.tmp_update/config/bftpd.conf | '$scope' static-analysis" + [ "$status" -eq 0 ] + [ "$output" = "none" ] + run sh -c "printf '%s\n' static/build/.tmp_update/bin/bftpdutmp | '$scope' risk" + [ "$status" -eq 0 ] + [ "$output" = "3" ] + run sh -c "printf '%s\n' static/configs/.tmp_update/config/bftpdauth.conf | '$scope' shell-tests" + [ "$status" -eq 0 ] + [ "$output" = "full" ] +} diff --git a/test/shell/legacy_manifest.bats b/test/shell/legacy_manifest.bats index 128e50cbd..67a4bbfd6 100644 --- a/test/shell/legacy_manifest.bats +++ b/test/shell/legacy_manifest.bats @@ -6,7 +6,7 @@ --manifest /workspace/build/legacy-manifest.json [ "$status" -eq 0 ] - [[ "$output" == "legacy manifest validate: 333 components" ]] + [[ "$output" == "legacy manifest validate: 331 components" ]] [ ! -e "/workspace/static/packages/RApp/SNK - Neo Geo (GnGeo)" ] [ ! -e "/workspace/static/packages/RApp/PICO-8 (PICO-8 standalone)" ] [ ! -e "/workspace/static/packages/RApp/SCUMM (ScummVM standalone)" ] @@ -47,6 +47,8 @@ assert "runtime-tmp-update-bin-bloom-samba-service" not in components assert "runtime-tmp-update-bin-samba" not in components assert "runtime-tmp-update-lib-samba" not in components assert "runtime-tmp-update-bin-filebrowser" not in components +assert "runtime-tmp-update-bin-bftpd" not in components +assert "runtime-tmp-update-bin-bftpdutmp" not in components assert components["runtime-tmp-update-bin-bloom-dev-deploy"]["resolution"] == "source-build" assert components["runtime-tmp-update-bin-bloom-display-session-prepare"]["resolution"] == "source-build" assert components["runtime-tmp-update-res-bloom"]["resolution"] == "source-build" diff --git a/test/shell/listener_lockdown.bats b/test/shell/listener_lockdown.bats index 88d95cf61..51956a9a6 100644 --- a/test/shell/listener_lockdown.bats +++ b/test/shell/listener_lockdown.bats @@ -111,6 +111,31 @@ EOF ! grep -Fi 'telnet' /workspace/website/docs/07-apps/03-network-features/06-hotspot.md } +@test "stable payload exposes no FTP launcher, configuration, or Tweaks toggle" { + network=/workspace/static/build/.tmp_update/script/network/update_networking.sh + tweaks=/workspace/src/tweaks/network.h + + [ ! -e /workspace/static/build/.tmp_update/bin/bftpd ] + [ ! -e /workspace/static/build/.tmp_update/bin/bftpdutmp ] + [ ! -e /workspace/static/configs/.tmp_update/config/bftpd.conf ] + [ ! -e /workspace/static/configs/.tmp_update/config/bftpdauth.conf ] + ! grep -F 'check_ftpstate()' "$network" + ! grep -F 'ftp_authed()' "$network" + ! grep -F 'bftpd -d' "$network" + grep -F 'disable_flag ftpState' "$network" + grep -F 'disable_flag authftpState' "$network" + grep -F 'for process in bftpd filebrowser telnetd hostapd dnsmasq smbd; do' "$network" + ! grep -F 'network_state.ftp' "$tweaks" + ! grep -F 'network_setFtpState' "$tweaks" + ! grep -F 'FTP: File server' "$tweaks" + ftp_doc=/workspace/website/docs/07-apps/03-network-features/04-ftp.md + grep -F 'BloomOS does not ship or start the inherited FTP server' "$ftp_doc" + grep -F '/docs/network/ssh' "$ftp_doc" + ! grep -F 'Enabling FTP access' "$ftp_doc" + ! grep -F 'FTP: File server' /workspace/website/docs/07-apps/01-included-in-onion/tweaks.mdx + ! grep -F 'FTP on the go' /workspace/website/docs/07-apps/03-network-features/06-hotspot.md +} + @test "stable compatibility reconciliation ignores stale flags and stops inherited processes" { root="$BATS_TEST_TMPDIR/root" sysdir="$root/mnt/SDCARD/.tmp_update" diff --git a/test/test_retroarch_build_identity.py b/test/test_retroarch_build_identity.py index d3e2dda86..e53557781 100644 --- a/test/test_retroarch_build_identity.py +++ b/test/test_retroarch_build_identity.py @@ -36,9 +36,9 @@ def test_identity_is_stable_for_unrelated_inventory_totals(self): self.assertRegex(baseline.stdout.strip(), r"^[0-9a-f]{64}$") changed = LOCK.read_text(encoding="utf-8") - changed = changed.replace("component_count = 333", "component_count = 999") - changed = changed.replace("file_count = 1974", "file_count = 9999") - changed = changed.replace("byte_count = 261292177", "byte_count = 999999999") + changed = changed.replace("component_count = 331", "component_count = 999") + changed = changed.replace("file_count = 1972", "file_count = 9999") + changed = changed.replace("byte_count = 260959742", "byte_count = 999999999") self.assertNotEqual(changed, LOCK.read_text(encoding="utf-8")) with tempfile.TemporaryDirectory() as directory: candidate = pathlib.Path(directory) / "dependencies.lock" diff --git a/tools/ci-scope.sh b/tools/ci-scope.sh index 41aab80f6..efaa5c06c 100755 --- a/tools/ci-scope.sh +++ b/tools/ci-scope.sh @@ -292,6 +292,12 @@ while IFS= read -r path; do # stable payload and therefore retains the complete ARM gate. [ "$mode" != build ] || full=1 ;; + static/build/.tmp_update/bin/bftpd|static/build/.tmp_update/bin/bftpdutmp|\ + static/configs/.tmp_update/config/bftpd.conf|static/configs/.tmp_update/config/bftpdauth.conf) + # Stable FTP payload deletion requires complete ARM packaging but + # does not expand unrelated C/C++ static analysis. + [ "$mode" != build ] || full=1 + ;; build/dependencies.lock|build/legacy-manifest.json|build/core-selection-policy*.json|\ build/core-inventory-disposition*.json|\ build/save-migration-policy*.json|\ @@ -515,6 +521,14 @@ while IFS= read -r path; do add_shell_target /workspace/test/shell/provenance_policy.bats add_shell_target /workspace/test/shell/fat_payload.bats ;; + static/build/.tmp_update/bin/bftpd|static/build/.tmp_update/bin/bftpdutmp|\ + static/configs/.tmp_update/config/bftpd.conf|static/configs/.tmp_update/config/bftpdauth.conf) + raise_risk 3 + add_shell_target /workspace/test/shell/listener_lockdown.bats + add_shell_target /workspace/test/shell/legacy_manifest.bats + add_shell_target /workspace/test/shell/provenance_policy.bats + add_shell_target /workspace/test/shell/fat_payload.bats + ;; test/test_bloom_ui_system_view.cpp|src/bloomUi/bloom_ui_system_view.c|src/bloomUi/bloom_ui_system_view.h) raise_risk 1 add_native_filter 'BloomUiSystemView*' diff --git a/website/docs/01-features/index.md b/website/docs/01-features/index.md index 948642585..24dd50875 100644 --- a/website/docs/01-features/index.md +++ b/website/docs/01-features/index.md @@ -210,7 +210,7 @@ For the Miyoo Mini Plus (equipped with wifi) Onion offers many additional possib - [Automatic date/time synchronisation](apps/tweaks#set-automatically-via-the-internet) (NTP, via Tweaks app) - [Retroachivements](https://www.retroarch.com/?page=achievements) - [Scraper](/docs/apps/scraper): import game covers directly from your MMP -- [Network Services](network-features): [Samba/SMB share](network/samba), [HTTP server (retired)](network/http), [SSH](network/ssh), [FTP](network/ftp), [Hotspot](network/hotspot), [VNC server](network/vnc)... +- [Network Services](network-features): [Samba/SMB share](network/samba), [HTTP server (retired)](network/http), [SSH/SFTP](network/ssh), [Hotspot](network/hotspot), [VNC server](network/vnc)... ::: diff --git a/website/docs/07-apps/01-included-in-onion/tweaks.mdx b/website/docs/07-apps/01-included-in-onion/tweaks.mdx index 4af3c5412..397fe73e7 100644 --- a/website/docs/07-apps/01-included-in-onion/tweaks.mdx +++ b/website/docs/07-apps/01-included-in-onion/tweaks.mdx @@ -184,14 +184,6 @@ It can be MainUI, [GameSwitcher](./game-switcher), [Retroarch](./retroarch) or [
    SSH provides a secure command line host for communicating with your device remotely. SFTP provides a secure file transfer protocol.
    -
    - -### FTP: File server... - -
    FTP provides a method of transferring files between Onion and a PC, phone, or tablet. You'll need an FTP client installed on the other device.
    -
    -
    - ### VNC: Screen share...
    Share your MMP Screen to another device for demonstrations or applications or themes (The MMP does not have the performance to stream game footage through this feature).
    diff --git a/website/docs/07-apps/03-network-features/01-samba-file-sharing.md b/website/docs/07-apps/03-network-features/01-samba-file-sharing.md index 99e05e3fc..2b4cf5146 100644 --- a/website/docs/07-apps/03-network-features/01-samba-file-sharing.md +++ b/website/docs/07-apps/03-network-features/01-samba-file-sharing.md @@ -78,7 +78,9 @@ We've made controlling shares as easy as possible; from the "Samba: Network file It's your Onion.. So let's get you setup with more (or less!) shares. We'll need to edit a file called smb.conf which is found in `/mnt/SDCARD/.tmp_update/config/smb.conf`. -As always, there's many ways to access this file. You can use [FTP](https://github.com/OnionUI/Onion/wiki/FTP)/[HTTP](https://github.com/OnionUI/Onion/wiki/HTTP-fileserver) or pull out the SD card and do it the manual way. +Use the reviewed [SSH / SFTP service](/docs/network/ssh), or remove the SD card +and edit the file directly. The inherited FTP and HTTP servers are not shipped +or started by BloomOS. To add a share folder, just make a copy of and existing entry and modify the path/name, restart Samba in tweaks and you're ready to go - it'll automatically appear in your Samba menu in tweaks and be ready to access. diff --git a/website/docs/07-apps/03-network-features/04-ftp.md b/website/docs/07-apps/03-network-features/04-ftp.md index 3b6a62652..aaa84d0b1 100644 --- a/website/docs/07-apps/03-network-features/04-ftp.md +++ b/website/docs/07-apps/03-network-features/04-ftp.md @@ -5,67 +5,13 @@ slug: /network/ftp # FTP -![](https://github.com/OnionUI/Onion/assets/47260768/7bfac01d-bfaa-4565-b10b-b2b2a0ea7f9c) - -FTP provides a method of transferring files between your Miyoo Mini+ and other devices such as a PC/Phone/Tablet. You'll need an FTP client installed on the second device. - - -## Features - -- File transfer - -- Debugging and troubleshooting - - -## Enabling FTP access - -You can either use the master toggle to turn the FTP server on with your Right/Left arrows, or press A to enter the submenu. - -You'll find it in **Apps** › **Tweaks** › **Network** › **FTP: File server** and you'll get 2 options: - -1. **Enable** - Activate FTP access - -2. **Enable authentication** - Activate authentication (username/password) - -![](https://github.com/OnionUI/Onion/assets/47260768/38aa375d-c2a1-40d5-9037-36a998858d9b) - - -## Logging in - -:::note Default credentials -**Username:** `onion` -**Password:** `onion` -*We're using a new auth system, user defined passwords will come in a future update.* -::: - -Once you've activated your FTP server in Tweaks you'll now be able to connect using software such as FileZilla, CuteFTP, WinSCP, FireFTP. You'll also be able to use an SFTP client to transfer files securely if SSH is also enabled. - -You'll need the IP of the device, found below (**Tweaks** › **Network**) - -![](https://github.com/OnionUI/Onion/assets/47260768/23ee6dbf-48c8-4484-b98b-9a8642b8fd49) - -Exit tweaks to apply & start the FTP server - - -## Disabling authentication - -Although this is not recommended on other peoples Wi-Fi, when you're at home on your own Wi-Fi this is absolutely fine. - -Head over to **Tweaks** › **Network** › **FTP**: - -![](https://github.com/OnionUI/Onion/assets/47260768/0cf75a65-654a-4b9a-815c-7c37d6d3f649) - -:::info File corruption -On some FTP clients you may need to alter settings or binary files will become damaged when they're transferred, FileZilla for example may need to change the setting shown below (**Transfer** › **Transfer type** › **Binary**) - -![](https://github.com/OnionUI/Onion/assets/47260768/62d13812-883c-466d-954a-5ce00b8306f4) -::: - -If you have authentication turned on, anonymous connections will fail. - - -## Security - -:::caution Network security -Although we've taken every precaution to offer as much security as possible, remember to keep your Onion safe. It is not recommended you use FTP on an insecure Wi-Fi network that is open or public as traffic is unencrypted, for this reason we strongly recommend you toggle FTP off when you're on the move! -::: +BloomOS does not ship or start the inherited FTP server. FTP sends credentials +and file contents without transport encryption, and its whole-card write access +does not meet BloomOS transfer-policy boundaries. + +Use the reviewed public-key-only [SSH / SFTP service](/docs/network/ssh) for +remote file transfer. SFTP exposes only the policy-approved roots, keeps Saves +read-only, and excludes credentials and update state. Removing an old SD card's +`.ftpState` or `.authftpState` marker is optional: BloomOS ignores and retires +both markers during compatibility reconciliation and stops any inherited +`bftpd` process. diff --git a/website/docs/07-apps/03-network-features/06-hotspot.md b/website/docs/07-apps/03-network-features/06-hotspot.md index 0d9a9c4fe..da50e7623 100644 --- a/website/docs/07-apps/03-network-features/06-hotspot.md +++ b/website/docs/07-apps/03-network-features/06-hotspot.md @@ -4,7 +4,7 @@ slug: /network/hotspot # Hotspot -Your Miyoo Mini Plus just got a lot more portable. SSH, HTTP file server, and FTP on the go, no extra devices needed. Stay connected with ease, anytime, anywhere. +Your Miyoo Mini Plus just got a lot more portable. Use the reviewed key-only SSH/SFTP service on the go, no extra devices needed. Stay connected with ease, anytime, anywhere. Compatible with Netplay (best paired with [Easy Netplay](../multiplayer/easynetplay) There are reports of issues with hotspot on firmware levels below `2023 05 05``. From 4386664cf3c2a2f740437be3d1f21cd27621be94 Mon Sep 17 00:00:00 2001 From: boburning Date: Mon, 31 Aug 2026 02:41:56 -0400 Subject: [PATCH 2/2] docs(network): restore balanced Tweaks MDX details --- website/docs/07-apps/01-included-in-onion/tweaks.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/website/docs/07-apps/01-included-in-onion/tweaks.mdx b/website/docs/07-apps/01-included-in-onion/tweaks.mdx index 397fe73e7..fd36db259 100644 --- a/website/docs/07-apps/01-included-in-onion/tweaks.mdx +++ b/website/docs/07-apps/01-included-in-onion/tweaks.mdx @@ -184,6 +184,8 @@ It can be MainUI, [GameSwitcher](./game-switcher), [Retroarch](./retroarch) or [
    SSH provides a secure command line host for communicating with your device remotely. SFTP provides a secure file transfer protocol.
    +
    + ### VNC: Screen share...
    Share your MMP Screen to another device for demonstrations or applications or themes (The MMP does not have the performance to stream game footage through this feature).