Skip to content

Commit 821990a

Browse files
committed
sanitize IMAP mailbox names before printing to terminal
Malicious mailbox names containing ANSI control sequences could forge terminal output, alter terminal state, or manipulate clipboard contents. Wrap f.Mailbox with textutil.SanitizeTerminal() in both printf paths.
1 parent d9da664 commit 821990a

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

cmd/msgvault/cmd/listfolders.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
imapclient "go.kenn.io/msgvault/internal/imap"
1111
"go.kenn.io/msgvault/internal/microsoft"
1212
"go.kenn.io/msgvault/internal/store"
13+
"go.kenn.io/msgvault/internal/textutil"
1314
)
1415

1516
func newListFoldersCmd() *cobra.Command {
@@ -140,9 +141,9 @@ func listFolders(ctx context.Context, src *store.Source) error {
140141
fmt.Println(" " + strings.Repeat("-", 46))
141142
for _, f := range folders {
142143
if f.NumMessages == -1 {
143-
fmt.Printf(" %-35s %10s\n", f.Mailbox, "??")
144+
fmt.Printf(" %-35s %10s\n", textutil.SanitizeTerminal(f.Mailbox), "??")
144145
} else {
145-
fmt.Printf(" %-35s %10d\n", f.Mailbox, f.NumMessages)
146+
fmt.Printf(" %-35s %10d\n", textutil.SanitizeTerminal(f.Mailbox), f.NumMessages)
146147
}
147148
}
148149
fmt.Println()

0 commit comments

Comments
 (0)