2dust / v2rayN

A GUI client for Windows and Linux, support Xray core and others
https://1.2345345.xyz
GNU General Public License v3.0
70.51k stars 11.62k forks source link

[Bug] 不赞同在本地文件中存储 root 密码,特别是这个密码是以明文形式进行存储 #6071

Closed poplar-at-twilight closed 1 week ago

poplar-at-twilight commented 1 week ago

预期情况

出于安全考虑,应用程序不应当存有 root 密码,更不应该明文存储密码。

实际情况

在 v7.1.0 版本中,如果在设置中保存 root 密码,则可以在配置文件中直接查询到这个密码字符串:

  "TunModeItem": {
    "EnableTun": false,
    "StrictRoute": true,
    "Stack": null,
    "Mtu": 9000,
    "EnableExInbound": false,
    "EnableIPv6Address": false,
    "LinuxSudoPassword": "ThisIsRootSecrect"
  },

复现方法

在 TUN 设置中填入 root 密码

日志信息

无,这是应用程序的结构产生的安全漏洞。

额外信息

无,这是应用程序的结构产生的安全漏洞。

我确认已更新至最新版本

我确认已查询历史issues

poplar-at-twilight commented 1 week ago

另见:

New Features

  • macOS/Linux 均不再存储 root 密码
  • 修改Windows下的 productNameMihomo Party
poplar-at-twilight commented 1 week ago

nekoray 的实现方式(vpn-run-root.sh):

#!/bin/sh
set -e
set -x

if [ "$EUID" -ne 0 ]; then
  echo "[Warning] Tun script not running as root"
fi

command -v pkill >/dev/null 2>&1 || echo "[Warning] pkill not found"

BASEDIR=$(dirname "$0")
cd $BASEDIR

pre_start_linux() {
  # for Tun2Socket
  iptables -I INPUT -s 172.19.0.2 -d 172.19.0.1 -p tcp -j ACCEPT
  ip6tables -I INPUT -s fdfe:dcba:9876::2 -d fdfe:dcba:9876::1 -p tcp -j ACCEPT
}

start() {
  pre_start_linux
  "/home/poplar/bin/nekoray/nekobox_core" run -c "/home/poplar/bin/nekoray/config/sing-box-vpn.json"
}

stop() {
  iptables -D INPUT -s 172.19.0.2 -d 172.19.0.1 -p tcp -j ACCEPT
  ip6tables -D INPUT -s fdfe:dcba:9876::2 -d fdfe:dcba:9876::1 -p tcp -j ACCEPT
}

if [ "$1" != "stop" ]; then
  start || true
fi

stop || true
2dust commented 1 week ago

如果有更好的可行的方式,肯定会改进 如果可以直接PR就行

2dust commented 1 week ago

密码改成非明码存储是否可以接受?

poplar-at-twilight commented 1 week ago

密码改成非明码存储是否可以接受?

应该是行的,确保密码不会轻易泄露。

我更推荐像 nekoray 那样,自身不存储密码,每次需要 TUN 模式时,让用户手动输入密码。

2dust commented 1 week ago

密码改成非明码存储是否可以接受?

应该是行的,确保密码不会轻易泄露。

我更推荐像 nekoray 那样,自身不存储密码,每次需要 TUN 模式时,让用户手动输入密码。

每次都输入密码不会考虑,这样太麻烦了用不下去的。

2dust commented 1 week ago

https://github.com/2dust/v2rayN/releases/tag/7.1.1

Poempoat commented 1 week ago

密码改成非明码存储是否可以接受?

应该是行的,确保密码不会轻易泄露。 我更推荐像 nekoray 那样,自身不存储密码,每次需要 TUN 模式时,让用户手动输入密码。

每次都输入密码不会考虑,这样太麻烦了用不下去的。

我用nekoray就是每次都输密码,用了一年多了也不会感到麻烦

2dust commented 1 week ago

密码改成非明码存储是否可以接受?

应该是行的,确保密码不会轻易泄露。 我更推荐像 nekoray 那样,自身不存储密码,每次需要 TUN 模式时,让用户手动输入密码。

每次都输入密码不会考虑,这样太麻烦了用不下去的。

我用nekoray就是每次都输密码,用了一年多了也不会感到麻烦

现在已经加密存储了,暂时这样