// [CRUCIBLE-SEED]
// category: path_traversal
// severity: high
// language: java
// expected: Path traversal via FileInputStream constructed from user-supplied path

import java.io.*;
import javax.servlet.http.*;

public class ConfigViewerServlet extends HttpServlet {
    private static final String CONFIG_ROOT = "/etc/app/configs/";

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        String configName = req.getParameter("config");
        // Vulnerable: traversal allows reading arbitrary files (e.g. ../../etc/passwd)
        FileInputStream fis = new FileInputStream(CONFIG_ROOT + configName);
        BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
        PrintWriter out = resp.getWriter();
        resp.setContentType("text/plain");
        String line;
        while ((line = reader.readLine()) != null) {
            out.println(line);
        }
        fis.close();
    }
}
