puter/packages/terminal
スーチ・ファトマワティ 3f6f4bb4c0
fix(security): update follow-redirects
When using axios, its dependency follow-redirects only clears authorization header during cross-domain redirect, but allows the proxy-authentication header which contains credentials too.

## Steps To Reproduce & PoC
```js
const axios = require('axios');

axios.get('http://127.0.0.1:10081/', {
 headers: {
 'AuThorization': 'Rear Test',
 'ProXy-AuthoriZation': 'Rear Test',
 'coOkie': 't=1'
 }
})
 .then((response) => {
 console.log(response);
 })
```
When I meet the cross-domain redirect, the sensitive headers like authorization and cookie are cleared, but proxy-authentication header is kept.

```diff
- removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);
+ removeMatchingHeaders(/^(?:authorization|proxy-authorization|cookie)$/i, this._options.headers);
```
CWE-200
`CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N`
CVE-2024-28849
2024-04-24 15:23:47 -04:00
..
assets Add missing asset for xterm, fix SDK url 2024-04-15 14:43:15 -04:00
config Copy over terminal 2024-04-12 20:53:32 -04:00
doc Copy over terminal 2024-04-12 20:53:32 -04:00
src Remove a whole load of noisy log messages 2024-04-19 17:29:26 +01:00
.gitignore Copy over terminal 2024-04-12 20:53:32 -04:00
LICENSE Copy over terminal 2024-04-12 20:53:32 -04:00
local.json5 Copy over terminal 2024-04-12 20:53:32 -04:00
notalicense-license-checker-config.json Copy over terminal 2024-04-12 20:53:32 -04:00
package-lock.json fix(security): update follow-redirects 2024-04-24 15:23:47 -04:00
package.json Rename workspace modules to avoid confusion 2024-04-23 04:06:15 -04:00
README.md Update README.md files for monorepo'd projects 2024-04-12 23:54:41 -04:00
rollup.config.js Fix xterm.css not loading 2024-04-15 14:46:16 -04:00
run-http.json5 Copy over terminal 2024-04-12 20:53:32 -04:00
run-https.json5 Copy over terminal 2024-04-12 20:53:32 -04:00
run-phoenix-http.json5 Copy over terminal 2024-04-12 20:53:32 -04:00
run.json5 Copy over terminal 2024-04-12 20:53:32 -04:00

HiTIDE logo

Puter Terminal Emulator

« LIVE DEMO »

Puter.com · Discord · Reddit · X (Twitter)

animated demo


This is a Puter-compatible pure-javascript terminal emulator built on xtermjs. It integrates with an external shell provider. We develop and test the terminal emulator alongside Puter's shell: phoenix.

The Terminal as a Whole

This terminal emulator alongside phoenix give you an AGPL-3.0-licensed pure-javascript terminal experience which integrates with Puter's filesystem, AI services, and more.

Here are a few examples of what you can do:

  • ai "write me a story"
  • txt2img "a blue computer on a cloud" > puter.png
  • neofetch
  • echo $(echo "command substitution")
  • cat example.txt | grep "find me"
  • cat example.json | jq "name"