Haskell Vulnerability Checks

Tools for checking vulnerabilities in Haskell code.


Cabal Outdated

1# Check outdated dependencies
2cabal outdated
3
4# Update dependencies
5cabal update
6cabal install --only-dependencies

HLint

 1# Install
 2cabal install hlint
 3
 4# Run on project
 5hlint src/
 6
 7# Apply suggestions
 8hlint src/ --refactor --refactor-options="-i"
 9
10# Generate report
11hlint src/ --report

Weeder (Dead Code Detection)

1# Install
2cabal install weeder
3
4# Run
5weeder

Stan (Static Analyzer)

1# Install
2cabal install stan
3
4# Run
5stan

CI/CD Integration

 1# GitHub Actions
 2name: Security Scan
 3
 4on: [push, pull_request]
 5
 6jobs:
 7  security:
 8    runs-on: ubuntu-latest
 9    steps:
10      - uses: actions/checkout@v3
11      
12      - name: Set up Haskell
13        uses: haskell/actions/setup@v2
14        with:
15          ghc-version: '9.4'
16          cabal-version: '3.10'
17      
18      - name: Cache
19        uses: actions/cache@v3
20        with:
21          path: |
22            ~/.cabal
23            dist-newstyle            
24          key: ${{ runner.os }}-cabal-${{ hashFiles('**/*.cabal') }}
25      
26      - name: Install dependencies
27        run: cabal build --only-dependencies
28      
29      - name: Run HLint
30        run: |
31          cabal install hlint
32          hlint src/          
33      
34      - name: Run Weeder
35        run: |
36          cabal install weeder
37          weeder          

Related Snippets